私はMac用のコードを学習しようとしています。私はしばらくJavaの男でしたので、私が問題になっているのは、Cocoaの単純な誤解です。addGlobalMonitorForEventsMatchingMaskマウス位置を返すだけ
私は、次のコードを持っている:
-(IBAction)beginEventMonitor:(id)sender {
_eventMonitor = [NSEvent addGlobalMonitorForEventsMatchingMask:(NSLeftMouseUpMask)
handler:^(NSEvent *incomingEvent) {
//NSWindow *targetWindowForEvent = [incomingEvent window];
NSLog(@"Got a mouse click event at %@", NSStringFromPoint([incomingEvent locationInWindow]));
}];
}
-(IBAction)stopEventMonitor:(id)sender {
if (_eventMonitor) {
[NSEvent removeMonitor:_eventMonitor];
_eventMonitor = nil;
}
}
これは、マウスのクリックは、グローバルレベルで発生したときに私に言うためのシンプルなフックです。ハンドラは動作していますが、incomingEventの内容は何も設定されていないようです。私が見つけることができる唯一有益な情報は、クリック時のマウスの位置と、クリックされたウィンドウのwindowIdです。
もっと詳しい情報を得ることはできませんか?モニターを正しくセットアップしていませんか?私は本当にどのウィンドウがクリックされたのか知ることができたいと思っていますが、マウスの位置やwindowIdを便利なものに変える方法さえ見つけられません。
はマウスイベントでうまくいきますが、keyDownイベントについて何か知っていますか? –