我NSView
在 Mac OS X 应用程序中有一个可以自行绘制的。当我准备好发生这种情况时,我通过电话请求它:
[self.imageRenderedView setNeedsDisplay:YES];
我的问题是,这个调用会阻塞吗?也就是说,它是同步的吗,我可以假设在执行后续语句时绘制已经发生了吗?这个假设似乎对我有用,但我对此感到有点不安全。
我NSView
在 Mac OS X 应用程序中有一个可以自行绘制的。当我准备好发生这种情况时,我通过电话请求它:
[self.imageRenderedView setNeedsDisplay:YES];
我的问题是,这个调用会阻塞吗?也就是说,它是同步的吗,我可以假设在执行后续语句时绘制已经发生了吗?这个假设似乎对我有用,但我对此感到有点不安全。
该setNeedsDisplay:
调用仅通过在视图对象中设置标志来将视图标记为需要显示。因此它返回非常快,但是当方法返回时绘图还没有发生。
从文档中:
每当用于绘制视图对象的数据或状态发生变化时,都应向视图发送
setNeedsDisplay:
消息。NSView
标记为需要显示的对象会在每次通过应用程序的事件循环时自动重新显示。(当然,在事件循环出现之前需要重新显示的视图对象可以立即发送适当的display...
方法。)