我正在寻找可以与Cocoa的NSEvent
类一起使用的可用密钥代码的完整列表。 NSEvent
类具有keyCode
属性,定义为unsigned short
。以下代码放置在适当的UI对象中时,将在按下键代码时对其进行回显:
- (void)keyDown:(NSEvent *)theEvent
{
NSLog(@"%d", [theEvent keyCode]);
}
从这段代码中,我可以很容易地看到哪些代码与某些键匹配,但我想找到一个列出所有代码的官方文档。我希望Apple的头文件看起来像这样:
enum {
...
NSKeyCodeLeftArrow = 123,
NSKeyCodeRightArrow = 124,
...
};
但如果有的话,我还没有找到它。
答案 0 :(得分:29)
Here you go.这是美国扩展键盘布局上所有虚拟键码的地图,来自旧的Inside Macintosh:Text。大多数关键代码目前仍在使用,但我怀疑最新的Apple键盘 - 带有媒体键的键盘 - 可能已经改变了一些功能键。
注意:ISO和非扩展键盘可能具有某些键的不同键码。如果您有这样的键盘,请尝试Peter Maurer's Key Codes应用程序。他的网站已关闭,所以here's my copy。
答案 1 :(得分:22)
据我所知,没有枚举或密钥代码列表。但是,为了获得类似的行为,您可以在keyDown中调用interpretKeyEvents::这将调用适当的操作方法,所有这些方法都记录在NSResponder中(例如moveLeft:,insertTab:等)。< / p>
答案 2 :(得分:12)
要在XCode 4中包含HIToolbox / Events.h(如berrange的答案中所述),您只需要链接Binaries with Libraries并添加Carbon框架(包括HIToolbox),然后导入文件中的主Carbon头你在哪里检查keyCodes。
#import <Carbon/Carbon.h>
我花了一秒时间才发现我无法直接导入HIToolbox / Events.h,所以我想我会发布这个以防万一。“
答案 3 :(得分:6)
根据此论坛主题,常量可在HIToolbox / Events.h
中找到http://forums.macrumors.com/showthread.php?t=780577
他们也方便地将整套常量复制+粘贴到论坛中。否则标题可在此处获取:
/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h
答案 4 :(得分:2)