ココアアプリ内でココア(OSX 10.5.8でxcode 3.1.4を使用)でマウスの位置を継続的に追跡することに関する質問と回答を投稿すると思いました。
私は最終的にそれを理解し、どうやってそれを解決したかを説明していると思った答えをここで見つけることができなかったので、それは自己回答の質問です
また、イベント タップを使用するよりも簡単で、10.6 のマスキング機能がなくても簡単だと考える人もいるかもしれません :)
ココアアプリ内でココア(OSX 10.5.8でxcode 3.1.4を使用)でマウスの位置を継続的に追跡することに関する質問と回答を投稿すると思いました。
私は最終的にそれを理解し、どうやってそれを解決したかを説明していると思った答えをここで見つけることができなかったので、それは自己回答の質問です
また、イベント タップを使用するよりも簡単で、10.6 のマスキング機能がなくても簡単だと考える人もいるかもしれません :)
これが私がやった方法です。
まず、トラッキング エリアの設定に使用したコードは次のとおりです。
NSTrackingArea* trackingArea = [ [ NSTrackingArea alloc] initWithRect:[ mainWindow frame] options:(NSTrackingMouseMoved | NSTrackingActiveAlways ) owner:self userInfo:nil);
[container addTrackingArea:trackingArea];
メイン ウィンドウを作成するときに、すべてを設定しているときに次のメッセージを追加します。
[window setAcceptsMouseMovedEvents:YES];
そして、イベントをキャッチしたいクラスのヘッダー ファイル (私にとっては、トラッキング エリアを作成したのと同じクラスにあります) で、NSResponder をサブクラス化し、キャッチしたいイベントを実装します。
-(void) mouseMoved: (NSEvent *) thisEvent
{
NSPoint cursorPoint = [ thisEvent locationInWindow ];
NSLog(@"X coordinate is %f and Y coordinate is %f",cursorPoint.x,cursorPoint.y);
}
これが助けになることを願っています:)
ありがとう!
ありがとう!そして、[NSEvent mouseLocation] でグローバル マウス座標を取得しました。