我有一个带有自定义NSView的窗口。我使用NSWindowController在代码中从NIB加载它。
问:如果我发送了NSWindowController的showWindow消息,它还会发送窗口层次结构中嵌入式自定义NSView的setNeedsDisplay消息吗?
最佳答案
通常,仅在视图首次出现后更改在[self setNeedsDisplay:YES]
中使用的值时,才需要发送-drawRect
。它应该始终由self
发送,其他对象则永远不需要发送-setNeedsDisplay:
消息,除非要解决错误或其他问题。
由于showWindow
在窗口最初绘制到屏幕之前,因此通常不需要-setNeedsDisplay:
,除非(再次)发现错误。
如果打开菜单项Xcode -> Open Developer Tool -> More Developer Tools...
并搜索“图形”,则可以下载工具包,其中之一是Quartz Debug。使用此调试器,只要将屏幕绘制到屏幕上,您就可以使屏幕闪烁黄色,只要屏幕绘制简单地重新绘制了已经可见的屏幕,就可以使屏幕闪烁红色。
您可以使用它来查找屏幕的哪些部分过于频繁地刷新。
关于ios - NSWindowController showWindow是否触发嵌入式NSView setNeedsDisplay?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22774772/