我在哪里可以find与Cocoa的NSEvent类一起使用的关键代码列表?

我正在寻找可用的可用密钥代码的完整列表,可用于Cocoa的NSEvent类。 NSEvent类有一个keyCode属性,它被定义为unsigned short 。 下面的代码放置在适当的UI对象中时,会在按键时回显键代码:

 - (void)keyDown:(NSEvent *)theEvent { NSLog(@"%d", [theEvent keyCode]); } 

从这段代码,我可以很容易地看到哪些代码匹配某些键,但我想find一个官方文档列出所有这些。 我希望苹果有一个头文件,看起来像这样:

 enum { ... NSKeyCodeLeftArrow = 123, NSKeyCodeRightArrow = 124, ... }; 

但如果有的话,我还没有find。

据我所知,没有关键代码的枚举或列表。 然而,为了获得类似的行为,你可以调用在keyDown中的interpreterKeyEvents:它将调用适当的操作方法,所有这些方法都logging在NSResponder中(例如moveLeft: , insertTab:等)

干得好。 它是美国扩展键盘布局上的所有虚拟键码的映射,来自旧的Inside Macintosh:Text。 大部分的关键代码目前仍在使用,尽pipe我怀疑最新的苹果键盘 – 那些带有媒体键的键盘 – 可能已经改变了一些function键。

注意:对于某些键,ISO和非扩展键盘可能具有不同的键码。 如果您有这样的键盘,请尝试Peter Maurer的键码应用程序。 他的网站已经closures,所以这是我的副本 。

要在XCode 4中包含HIToolbox / Events.h(正如在berrange的答案中提到的),您只需要链接二进制库并添加Carbon框架(其中包括HIToolbox),然后将主要的Carbon标题导入到您所在的文件中检查keyCodes。

 #import <Carbon/Carbon.h> 

我花了一秒钟的时间才发现我无法直接导入HIToolbox / Events.h,所以我想我会发布这个以防万一。

根据这个论坛主题,常量可以在HIToolbox / Events.h中find

http://forums.macrumors.com/showthread.php?t=780577

他们也方便地将整套常量复制到论坛中。 否则,头可以在这里find:

 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h