我有一个带有自定义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/

10-14 03:24