我有一个带有自定义NSView的窗口。我使用NSWindowController在代码中从NIB加载它。
问:如果我发送NSWindowController的showWindow消息,它是否也会发送窗口层次结构中嵌入的自定义NSView的setNeedsDisplay消息?
发布于 2014-04-02 11:02:00
通常,只有在视图第一次出现后-drawRect中使用的值发生更改时,才需要发送[self setNeedsDisplay:YES]。它应该总是由self发送,其他对象应该永远不需要发送-setNeedsDisplay:消息,除非是为了解决错误或其他问题。
因为showWindow是在窗口最初被绘制到屏幕之前,所以您通常不需要-setNeedsDisplay:,除非(再次)您发现了一个bug。
如果您打开菜单项Xcode -> Open Developer Tool -> More Developer Tools...并搜索"graphics",您可以下载一个工具包,其中一个是Quartz Debug。使用此调试器,您可以在绘制屏幕时使屏幕闪烁黄色,并在屏幕绘制简单地重新绘制任何已经可见的内容时使屏幕闪烁红色。
您可以使用它来找出屏幕的哪些部分刷新得太频繁。
https://stackoverflow.com/questions/22774772
复制相似问题