スーパービューでドラッグできる NSView サブクラスがあります。mouseDragged イベント ハンドラーで NSView の setFrameOrigin メソッドと setFrameRotation メソッドを呼び出して、ビューを移動します。ビューは、呼び出しごとに移動および回転されます。
単一のスーパービューに含まれるこれらのビューの複数のインスタンスがあります。私が抱えている問題は、あるビューが別のビューにドラッグされると、見えなくなっているビューにアーティファクトが残ることです。この動作の短いビデオを録画しました。残念ながら、ビデオ圧縮のため、アーティファクトはあまり見えません。
これは同時平行移動と回転が関係しているのではないかと強く疑っています。Quartz Debug は、別のビューがドラッグされると、閉塞 (または閉塞) ビューの長方形が更新されることを明らかにします (ビデオはこちら)。どういうわけか、この四角形は描画エンジンによって誤って計算されているため、再描画する必要があるビューの一部はそうではありません。
キッカーは、これを修正する方法がわかりません。ドキュメントで update rect を手動で指定する方法が見つかりません。また、それが必要かどうかもわかりません。何か案は?ありがとう!