1

サブクラスNSTrackingAreaで 2 つの領域を定義するために使用しています。NSView次に、mouseEntered/mouseExited を使用して、カーソルをカスタム カーソルに変更しています。

したがって、マウスが上部のトラッキング領域に入り、カスタム カーソルが期待どおりに設定されると、すべて正常に動作します。mouseDown を押して上部のトラッキング エリアをドラッグしても、すべて問題ありません。しかし、マウスをドラッグすると更新される UI の別の部分があり、同じウィンドウの別の場所にサブビューが追加されます。

最初のサブビューが別の場所に追加されるとすぐに、カスタム カーソルが消えて矢印カーソルに戻ります。ビューに使用してカーソルをカスタム カーソルに強制的に戻すことができるかもしれないと思ってcursorUpdateいましたが、何らかの理由で呼び出されませんNSTrackingArea

これには少し困惑しています...

4

1 に答える 1

3

cursorUpdateウィンドウのカスタム contentViewをオーバーライドして解決しました。空のcursorUpdateメソッドにより、更新がチェーンに渡されなくなり、カスタム カーソルは設定したままになります。

于 2013-11-25T16:09:35.533 に答える