何千もの NSBezierPath を描画する NSView があります。mousemoved イベントで選択したものを強調表示 (塗りつぶしの色を変更) したいと思います。現時点では、mouseMoved 関数で次のコマンドを使用します。
[self setsetNeedsDisplay:YES];
すべてのパスを再描画するために drawRect の呼び出しを強制します。選択したものだけを再描画したい。drawRect 関数で addClip を使用しようとしました:
NSBezierPath * path = ... //builds the path here
[path addClip];
[path fill];
しかし、 drawRect は以前に描画された他のすべてのパスを破棄し、クリップされたパスのみを再描画するようです。
drawRectを呼び出すときにすべてのビューを無効にすることはできませんか? 以前のビューにあったものを段階的に上書きするだけですか?
ありがとう、ルカ