2011-11-15 5 views
0

私は一連のビューを持つウィンドウ(NSWindow)を持っています。これらのビューの1つは、mouseMoveイベントを受け入れます。私はマウスで2つの異なるビュー間の線を接続できるようにしたい。だから、私がやったことは、ウィンドウ全体をカバーする大きなビューが作成され、私はこのビューで私のラインを描きます。これは正常に動作します。スタックビューのmouseMoveイベントへの応答

問題は、大きな、重なり合うビューでmouseMoveイベントを受け入れることができるようにして、行がカーソルに追従するようにすると、表示可能なビューはmouseMoveイベントの受信を停止します。これは問題です。特定のオブジェクトをマウスの上に置いて、そのビューのmouseMoveメソッドでこれを行うと、基になるビューに「ライトアップ」したいからです。

表示されないオーバーラップビューと可視ビューの両方で呼び出されるmouseMoveメソッドを取得するにはどうすればよいですか?

答えて

0

オーバーラップするビューのmouseMoveメソッドに、mouseMoveメソッドを基になるビューに送信させることができます。あなたはNSTrackingAreaを初期化するために使用されているオプション

+0

おかげで、問題ではないはず!私は[[[[self window] windowController] myOtherView] mouseMoved:theEvent]を介して他のビューにアクセスし、両方のビューがmouseMovedに応答するようになりました。 –

1

チェック... 私が正しくリコール場合はNSTrackingActiveAlwaysを使用すると、あなたが最初の応答者であるかどうかをマウスイベントを取得することができるはずです。あなたの意見が積層されている場合、それは...限り、彼らは自分のトラッキングエリアを登録すると、彼らがイベントを受け取る必要があり、この作品

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSTrackingArea_class/Reference/Reference.html

関連する問題