使用Swift绘制Cocoa会创建错误

时间:2016-05-16 07:34:21

标签: swift cocoa

当尝试在iOS应用程序中绘制时,我们遇到了问题。经过几个小时的搜索没有运气,我们决定在这里问。

为了制作图纸,我们创建了一个类

import Cocoa

class DrawImageHolder: NSView {
  override func drawRect(dirtyRect: NSRect) {
        super.drawRect(dirtyRect)
       print(" drawRect is executed  ")

       // drawing code 
  }
}

然后我们将班级连接到NSView这样的

enter image description here

但我们收到了

  

- [NSApplication runModalForWindow:]可能无法在事务提交中调用(通常这意味着它是在一个内部调用的)   view的-drawRect:方法。)模式对话框已被抑制为   避免僵局。

来自控制台而不是绘图的

消息。

除了打印(“执行drawRect”)之外没有执行。

我们很可能忘记了一些简单的事情。

1 个答案:

答案 0 :(得分:1)

您的类继承自NSView:

class DrawImageHolder: NSView

所以你正在使用print

print(" drawRect is executed  ")

实际上是NSView的{​​{1}}。该视图尝试显示一个用于打印的对话框,并且正如错误所述,它从一个不应该显示的位置开始。

解决方案是在print前添加print前缀,以便您明确使用Swift的Swift代替print的{​​{1}}:

NSView