我在哪里可以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