2

Mac OS X 10.6 では、現在押されているモディファイア フラグを決定するクラス メソッドがありますNSEvent+modifierFlags10.5 では、[[NSApp currentEvent] modifierFlags]マウスの移動後にのみ更新を使用します。修飾子フラグを非同期に取得する方法はありますか?

4

2 に答える 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 に答える