私はそれに2つのビューを持つウィンドウを持っています:
ムービー ビューとコントローラー ビューの両方が、さまざまな目的でmouseDown:
とmouseUp:
をオーバーライドします (ムービー ビューにはターゲットとアクションがあり、ボタンとして反応しますが、コントローラーはドラッグのシークとサポートをサポートします)。
ひねりを加えたのは、ムービー ビュー内をクリックすると (スクリーンショットに示されているように、一般に、ムービー ビューを見逃すのに十分な大きさであり、代わりにコントローラー ビューにヒットする可能性が非常に低くなります)、mouseDown:
およびmouseUp:
メッセージがコントローラー ビューに送信されることです! ムービー ビューはどちらのメッセージも受け取りません。
ムービー ビューまたはその親ビュー (プレーンな NSView) ではオーバーライドせずhitTest:
、コントローラー ビューでのみオーバーライドしました (そのビューにあるトラッキング エリアに関係する理由で、私の実装は単純に を返しますself
。これは、コントローラー ビュー)。
それで、何が得られますか?