CocoaのNSEvent
クラスで使用できる利用可能なキーコードの包括的なリストを探しています。 NSEvent
クラスにはkeyCode
プロパティがあり、unsigned short
として定義されています。次のコードは、適切なUIオブジェクトに配置されると、押されたときにキーコードをエコーします。
- (void)keyDown:(NSEvent *)theEvent
{
NSLog(@"%d", [theEvent keyCode]);
}
このコードから、どのコードが特定のキーに一致するかを簡単に確認できますが、それらすべてをリストした公式のドキュメントをどこかに見つけたいです。私はAppleに次のようなヘッダーファイルがあると期待しました:
enum {
...
NSKeyCodeLeftArrow = 123,
NSKeyCodeRightArrow = 124,
...
};
しかし、それがあったとしても、まだ見つけていません。
私の知る限り、キーコードの列挙型またはリストはありません。ただし、同様の動作を得るには、keyDown:で interpretKeyEvents: を呼び出すことができます。これにより、適切なアクションメソッドが呼び出されます。これらはすべてNSResponderに記載されています(例 moveLeft: 、- insertTab: など)
ここに移動します。 これは、古いInside Macintosh:Textからの、米国の拡張キーボードレイアウト上のすべての仮想キーコードのマップです。最新のAppleキーボード(メディアキーを備えたもの)は、いくつかのファンクションキーを変更した可能性があります。
注:ISOキーボードと拡張されていないキーボードでは、キーによってはキーコードが異なる場合があります。そのようなキーボードをお持ちの場合は、 Peter Maurerのキーコード アプリケーションを試してください。彼のサイトはダウンしているので、 これは私のコピーです です。
XCode 4にHIToolbox/Events.h(berrangeの回答で述べたとおり)を含めるには、Link Binaries with Librariesに移動し、Carbonフレームワーク(HIToolboxを含む)を追加して、メインのCarbonヘッダーをファイルにインポートするだけですkeyCodesをチェックします。
#import <Carbon/Carbon.h>
HIToolbox/Events.hを直接インポートできないことを理解するのに少し時間がかかったので、誰かに役立つ場合に備えて、これを投稿すると思いました。
このフォーラムのトピックによれば、定数は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