我有一个 NSView,我在其中绘制了数千个 NSBezierPaths。我想在 mousemoved 事件中突出显示(更改填充颜色)选定的一个。目前我在 mouseMoved 函数中使用以下命令:
[self setsetNeedsDisplay:YES];
这会强制调用 drawRect 来重绘每条路径。我想只重绘选定的一个。我尝试在 drawRect 函数中使用 addClip:
NSBezierPath * path = ... //builds the path here
[path addClip];
[path fill];
但似乎 drawRect 破坏了所有其他先前绘制的路径,并且只重绘了被裁剪的路径。
调用drawRect时是否可以不使所有视图无效?我的意思是逐步覆盖之前视图中的内容?
谢谢,卢卡