NSWindowController showWindow Trigger Embedded NSView setNeedsDisplay?

时间:2014-04-01 00:40:10

标签: ios objective-c macos cocoa-touch cocoa

我有一个带有自定义NSView的窗口。我使用NSWindowController在代码中从NIB加载它。

问题:如果我发送了NSWindowController的showWindow消息,它是否还会在窗口的层次结构中发送嵌入式自定义NSView的setNeedsDisplay消息?

1 个答案:

答案 0 :(得分:1)

一般情况下,只有在第一次显示视图后,[self setNeedsDisplay:YES]内使用的值时才需要发送-drawRect。它应始终由self发送,其他对象永远不需要发送-setNeedsDisplay:消息,除了解决错误或其他问题。

由于showWindow位于窗口最初绘制到屏幕之前,因此您通常不需要-setNeedsDisplay:,除非(再次)您发现了错误。

如果您打开菜单项Xcode -> Open Developer Tool -> More Developer Tools...并搜索" graphics",您可以下载一组工具,其中一个是Quartz Debug。使用此调试器,您可以在屏幕绘制时使屏幕闪烁黄色,并且只要屏幕绘制只是重新绘制已经显示的内容,就会闪烁红色。

您可以使用它来查明屏幕的哪些部分过于频繁地刷新。