Macアプリでキーボードイベントをインターセプトしようとしています。
キーストーンをコピーする「記録」アクティビティを開始してから、「停止」アクティビティを開始してほしい。
それはCocoaのMacAPIを介して可能ですか?
Macアプリでキーボードイベントをインターセプトしようとしています。
キーストーンをコピーする「記録」アクティビティを開始してから、「停止」アクティビティを開始してほしい。
それはCocoaのMacAPIを介して可能ですか?
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;
}];
すべてのキーボード入力(および必要に応じてマウス)をインターセプトするには、QuartzEventsAPIを確認してください。この投稿には、APIの使用法を示すコードがいくつかあります。