【问题标题】:drawRect not getting called when needed under OS X在 OS X 下需要时不调用 drawRect
【发布时间】:2011-07-23 23:59:31
【问题描述】:

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

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

我是 OS X 编程的新手,我很感激您能给我的任何提示。

谢谢,汤姆·杰弗里斯

【问题讨论】:

    标签: graphics quartz-graphics nsview drawrect setneedsdisplay


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      相关资源
      最近更新 更多