7

ユーザーがキーを押すたびにメソッドを実行することは可能ですか? 基本的にはiPhoneやiPadのようにキーを押したときに音を鳴らしたい。ウィンドウまたは特定のコントロールでのキーの押下を検出したくありません。すべての押下を検出したい (Safari などで入力している場合など)。キーが何であるかを知る必要はありません。

ありがとう

4

3 に答える 3

11

CGEventTapCreateここに文書化された使用:

https://developer.apple.com/library/mac/#documentation/Carbon/Reference/QuartzEventServicesRef/Reference/reference.html

または、ここに記載されている NSEvents を使用しaddGlobalMonitorForEventsMatchingMask:handler:ます。

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/nsevent_Class/Reference/Reference.html

NSEvent 例:

[NSEvent addGlobalMonitorForEventsMatchingMask:(NSKeyDownMask) handler:^(NSEvent *event){
    [self keyWasPressedFunction: event];
    //Or just put your code here
}];

NSEventsの方が簡単だと思います...

ノート:

セキュリティ上の理由から、上記のいずれかの方法を使用するには、システム環境設定で「補助デバイスのアクセスを有効にする」をオンにする必要があります。

于 2012-04-29T01:45:17.883 に答える
3

Quartz のイベント タップでかなり接近できますが、一部のキー押下はセキュリティのために 1 つでも検出できません。

念頭に置いているより広い目標を教えていただければ、代替案を提案できます。アプリのグローバル ホットキーを確立しようとしていますか? キーロガーまたはマルウェアを作成していますか? 何?

于 2012-04-29T01:42:38.053 に答える