1

カスタム NSView サブクラスを作成しています。ウィンドウにこのクラスのインスタンスがいくつかありますが、そのほとんどは NSView の setFrameRotation メソッドを呼び出すことによって回転されます。また、このビューの長方形の領域にカーソルを合わせる必要があります。

NSView の addCursorRect メソッドのドキュメントには、次の斜めの警告が含まれています。

カーソルの四角形は、スーパービューによるクリッピングの対象ではなく、回転したビューでの使用も想定されていません

まあ、クソ。しかし、そうでなければ使用しなければならないハックよりもはるかに優れたソリューションであるため、それらを使用したいと思います. そして、あなたは何を知っていますか?試してみましたが、うまくいくようです。それにもかかわらず、その警告は私を怖がらせます。いつか悪魔が彼の借金を取りに来るのではないかと心配している. したがって、私の質問は次のとおりです。カーソルの長方形が回転ビューでの使用を意図していない理由を誰か知っていますか?

4

2 に答える 2

1

私はこれを自分で試したことはありませんが、10.5 ではTracking Area Objectsでこれを行う新しい方法が追加されたようで、古い学校のカーソル四角形にある制限はないようです。

于 2009-10-28T05:36:54.760 に答える
1

ええ、私の質問を投稿した直後に、答えが思い浮かぶと思います。カーソル四角形で採用されているヒット検出は、単純な四角形のみで動作するように見えます。したがって、カーソル四角形を含むビューを回転すると、実際に使用されるカーソル四角形は、回転した元の四角形を完全に囲む最小の四角形になります。

ただし、他の望ましくない副作用がある場合に備えて、これを開いたままにしています。

于 2009-07-31T08:20:01.440 に答える