web-dev-qa-db-ja.com

CocoaのNSEventクラスで使用するキーコードのリストはどこにありますか?

CocoaのNSEventクラスで使用できる利用可能なキーコードの包括的なリストを探しています。 NSEventクラスにはkeyCodeプロパティがあり、unsigned shortとして定義されています。次のコードは、適切なUIオブジェクトに配置されると、押されたときにキーコードをエコーし​​ます。

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

このコードから、どのコードが特定のキーに一致するかを簡単に確認できますが、それらすべてをリストした公式のドキュメントをどこかに見つけたいです。私はAppleに次のようなヘッダーファイルがあると期待しました:

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

しかし、それがあったとしても、まだ見つけていません。

46
e.James

私の知る限り、キーコードの列挙型またはリストはありません。ただし、同様の動作を得るには、keyDown:で interpretKeyEvents: を呼び出すことができます。これにより、適切なアクションメソッドが呼び出されます。これらはすべてNSResponderに記載されています(例 moveLeft: 、- insertTab: など)

23
Saurabh Sharan

ここに移動します。 これは、古いInside Macintosh:Textからの、米国の拡張キーボードレイアウト上のすべての仮想キーコードのマップです。最新のAppleキーボード(メディアキーを備えたもの)は、いくつかのファンクションキーを変更した可能性があります。

注:ISOキーボードと拡張されていないキーボードでは、キーによってはキーコードが異なる場合があります。そのようなキーボードをお持ちの場合は、 Peter Maurerのキーコード アプリケーションを試してください。彼のサイトはダウンしているので、 これは私のコピーです です。

29
Peter Hosey

XCode 4にHIToolbox/Events.h(berrangeの回答で述べたとおり)を含めるには、Link Binaries with Librariesに移動し、Carbonフレームワーク(HIToolboxを含む)を追加して、メインのCarbonヘッダーをファイルにインポートするだけですkeyCodesをチェックします。

#import <Carbon/Carbon.h>

HIToolbox/Events.hを直接インポートできないことを理解するのに少し時間がかかったので、誰かに役立つ場合に備えて、これを投稿すると思いました。

12
Angus Forbes

このフォーラムのトピックによれば、定数は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
6
berrange

Swiftの場合、Carbon.HIToolbox.Eventsをインポートしてから、定数を直接使用します。

import Carbon.HIToolbox.Events

let keyCode = kVK_ANSI_A

すべてのコードのリストについては、Carbon.HIToolbox.Eventsの定義にアクセスしてください。

screenshot

0
Hejazi