私がしたいこと
円形のカスタム NSView サブクラスがあり、マウスがビューの円形部分の上にあるときのカーソルの外観を変更したいのですが、ビューの四角形の円の外側にある部分の上ではカーソルの外観を変更したくありません。
これがイラストです。画像タグでインライン化したかったのですが、私はあまりにも新しいので、そのような素晴らしい機能に参加することはできません.
私がこれまでに知っていること
NSCursor を使用してカーソルの外観を変更する方法を知っています。長方形のビューでこれを達成する最良の方法は、カーソル長方形を使用することだと思います。私は、mouseMoved イベントを受け取ることができることを知っています (そして、マウスがこのビュー上にないときは、mouseEntered と mouseExited を使用してそれらをオフにする必要があります)。
では、何が問題なのですか?
私が知る限り、システムは最初の応答者ではないビューに mouseMoved イベントを送信しません。したがって、マウスがビューの上にあるときに mouseMoved イベントを取得したい場合は、現在持っている人から firstResponder ステータスを盗む必要があります。テキスト ビューにフォーカスがある場合、そのようなビューの上にマウスを移動するだけでそれが奪われてしまいます。これは、ユーザビリティの観点からは受け入れられません。
したがって、私の質問は次のようになります。これを行うためのより良い方法はありますか? ファーストレスポンダにならずに mouseMoved イベントを取得できますか?
ありがとう!
次のタグを追加します: custom-views mouse-events NSCursor firstResponder しかし、繰り返しますが、私は SA 初心者なので、できません。