我有一个带有自定义NSView的窗口。我使用NSWindowController在代码中从NIB加载它。
问题:如果我发送了NSWindowController的showWindow消息,它是否还会在窗口的层次结构中发送嵌入式自定义NSView的setNeedsDisplay消息?
答案 0 :(得分:1)
一般情况下,只有在第一次显示视图后,[self setNeedsDisplay:YES]
内使用的值时才需要发送-drawRect
。它应始终由self
发送,其他对象永远不需要发送-setNeedsDisplay:
消息,除了解决错误或其他问题。
由于showWindow
位于窗口最初绘制到屏幕之前,因此您通常不需要-setNeedsDisplay:
,除非(再次)您发现了错误。
如果您打开菜单项Xcode -> Open Developer Tool -> More Developer Tools...
并搜索" graphics",您可以下载一组工具,其中一个是Quartz Debug。使用此调试器,您可以在屏幕绘制时使屏幕闪烁黄色,并且只要屏幕绘制只是重新绘制已经显示的内容,就会闪烁红色。
您可以使用它来查明屏幕的哪些部分过于频繁地刷新。