別の 内に クラスMyView
( のサブクラス) のビューがいくつかあります。、、、、および を実装します。NSView
NSView
MyView
-mouseEntered:
-mouseExited:
-mouseDown:
-mouseDragged:
-mouseUp:
ほとんどの場合、MyView
がマウス ダウン イベントを受信するとMyView
、次のマウス アップ イベントまで、後続のすべてのマウス ドラッグ イベントが で受信されます。カーソルが の外に出てもMyView
. これが予期される動作です。
がマウスMyView
ダウン イベントを受け取る場合がありますが、カーソルが 内にある間は、マウス ドラッグおよびマウス アップ イベントのみを受け取りますMyView
。カーソルが別の に移動するとMyView
、MyView
マウス ドラッグ イベントの受信が開始され (最初にマウス ダウン イベントを受信せずに)、その後のマウス アップ イベントを受信できます。
重要な場合、マウスダウン イベントは の上にFooView
(のサブクラスNSView
) を作成しMyView
、マウス ドラッグ イベントは のフレームのサイズを変更しFooView
ます。これらの のいずれかが作成された後にのみ問題を再現できたので、これは関連している可能性がありますFooView
。FooView
マウス イベント メソッドを実装しません。
私はこれをしばらくいじっていましたが、意図的に問題を再現することも、単純な例で問題を再現することもできませんでした。私のコードに関する質問に喜んでお答えします。投稿する関連部分が何であるかわかりません。