Graphics 在OS X下需要时未调用drawRect

Graphics 在OS X下需要时未调用drawRect,graphics,quartz-graphics,nsview,drawrect,setneedsdisplay,Graphics,Quartz Graphics,Nsview,Drawrect,Setneedsdisplay,我使用的窗口使用NSView的子类。当程序启动时绘制一部分,当用户单击另一个窗口中的按钮时,需要绘制另一部分。另一个窗口的代码毫无问题地调用我的NSView子类,创建新图形,然后返回。但是,需要使用新图形更新的窗口不会更改 当我在最初的drawRect调用中放置开始的图形和稍后要绘制的图形时,一切都是毫无问题地绘制的。但是,当用户单击第二个窗口上的按钮时,不会调用drawRect。我尝试了从NIB唤醒、设置needsDisplay、needsDisplay和display,但到目前为止,我还没有

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

当我在最初的drawRect调用中放置开始的图形和稍后要绘制的图形时,一切都是毫无问题地绘制的。但是,当用户单击第二个窗口上的按钮时,不会调用drawRect。我尝试了从NIB唤醒、设置needsDisplay、needsDisplay和display,但到目前为止,我还没有发现任何东西可以让NSView窗口调用drawRect

我对OSX编程相当陌生,非常感谢您给我的任何提示


谢谢,Tom Jeffries

您应该将按钮单击分离到一个控制器类中,该控制器应该调用setNeedsDisplay on view对象。不要说视图本身设置需要显示