3

Macアプリでキーボードイベントをインターセプトしようとしています。

キーストーンをコピーする「記録」アクティビティを開始してから、「停止」アクティビティを開始してほしい。

それはCocoaのMacAPIを介して可能ですか?

4

2 に答える 2

6

NSEventメソッドaddLocalMonitorForEventsMatchingMask:handler:を見てください。これにより、アプリで発生するイベント(具体的にはkeyDownイベント)を受信できるようになり、メソッドが返すキーストロークを使用して必要な操作を実行できます。その方法の簡単な使用例を次に示します。

self.keystrokes = [NSMutableString string];
    [NSEvent addLocalMonitorForEventsMatchingMask:NSKeyDownMask handler:^NSEvent* (NSEvent* event){
        NSString *keyPressed = event.charactersIgnoringModifiers;
        [self.keystrokes appendString:keyPressed];
        return event;
    }];
于 2012-06-05T00:38:01.893 に答える
3

すべてのキーボード入力(および必要に応じてマウス)をインターセプトするには、QuartzEventsAPIを確認してください。この投稿には、APIの使用法を示すコードがいくつかあります。

于 2012-06-05T00:40:45.963 に答える