Mac OS X 10.6 では、現在押されているモディファイア フラグを決定するクラス メソッドがありますNSEvent
。+modifierFlags
10.5 では、[[NSApp currentEvent] modifierFlags]
マウスの移動後にのみ更新を使用します。修飾子フラグを非同期に取得する方法はありますか?
質問する
733 次
2 に答える
2
このブログ投稿のコメントによると、CGEventCreate() と CGEventGetFlags() を使用できます。
CGEventRef event = CGEventCreate(NULL /*default event source*/);
CGEventFlags mods = CGEventGetFlags(event);
if (mods & kCGEventFlagMaskShift)
NSLog(@"Shift key is being pressed");
CGEventGetFlags() (CGEventFlags) によって返される修飾子フラグは、NSEvent のものと同じです。
于 2010-09-07T16:24:23.387 に答える
2
GetCurrentKeyModifiers()
. これは C 関数ですが、Cocoa アプリケーションで使用できます (Carbon フレームワークの一部ですが、64 ビット システムの IIRC でも使用できます)。使用するフラグは Cocoa フラグと同じではないことに注意してください。適切に変更すること。
于 2010-09-07T16:13:37.050 に答える