2

マウスの位置に応じてカーソルを設定する必要があるカスタムビューがあります。ハンドラー[NSCursor set]にカーソルを設定するために使用します。mouseMoved:これはOSX10.5で機能しますが、ほとんどの場合10.6では機能しません。カーソルが変わることもありますが、通常は変わりません。

問題は、イベントに応じてカーソルを設定する必要があることです。mouseMoved:カーソルの四角形を登録しNSTrackingAreaたり、updateCursor:イベントを使用したりすることができません。NetSurfブラウザ用のCocoaフロントエンドに取り組んでいます。エンジンは、フロントエンドからのマウス移動イベントを予期します。カーソルがリンクまたは別のカーソルを必要とするものの上にある場合、エンジンはフロントエンドから関数を呼び出して新しいカーソルを設定します。

Snow Leopardでこれを機能させる方法について何かアイデアはありますか?

4

2 に答える 2

0

通常、他のビューがカーソルを変更するのを避けるために、CursorRects を使用する必要があります。しかし、それができないので、マウスがビューに入ったときに、ウィンドウ レベルで CursorRects を無効にすることで干渉を防ぐことができます。マウスがビューを終了したら、ウィンドウの back cursorrects を有効にします。

于 2015-12-01T11:35:46.583 に答える
0

mouseEnter と mouseExit でプッシュとポップを使用して NSCursor オブジェクトを使用するだけです。

于 2015-12-01T16:41:47.167 に答える