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