在OS X下需要时不会调用drawRect

时间:2011-07-23 23:59:31

标签: graphics quartz-graphics nsview drawrect setneedsdisplay

我正在使用一个使用NSView子类的窗口。程序启动时绘制部分内容,当用户单击另一个窗口中的按钮时,需要绘制另一部分。另一个窗口的代码调用我的NSView子类没有问题,创建新图形,然后返回。但是,需要使用新图形更新的窗口不会更改。

当我将初始图形和稍后要绘制的图形放在初始drawRect调用中时,绘制的所有内容都没有问题。但是,当用户单击第二个窗口上的按钮时,不会调用drawRect。我已经尝试过awakeFromNib,setNeedsDisplay,needsDisplay和display,但到目前为止我找不到任何东西都会让NSView窗口调用drawRect。

我是OS X编程的新手,并且感谢您可以提出的任何提示。

谢谢,Tom Jeffries

1 个答案:

答案 0 :(得分:0)

您应该将按钮单击分成控制器类,并且该控制器应该在视图对象上调用setNeedsDisplay。不要说视图本身setNeedsDisplay。