-1
在NSView class documentation中,有一个符号canDraw
,指示绘图命令是否会产生任何结果。如何设置NSView实例属性
的声明是var canDraw: Bool { get }
- 所以,任何时候你尝试一些诸如
@IBOutlet weak var myView: NSView!
然后myView.canDraw = true
,你会得到一个编译时错误消息:“Cannot assign to property: 'canDraw' is a get-only property
”。但是,如果我想将NSRect绘制到我的视图上,我该如何更改此属性?
你不会改变它。阅读文档!它正在向您报告您目前是否有上下文。如果你想负责绘图,你只需要执行'draw'方法。 https://developer.apple.com/reference/appkit/nsview/1483686-draw – matt
@matt我试着实现'draw'方法,并且没有发现任何变化,所以我认为它被忽略了,因为' canDraw'是错误的。我的错。我会继续修改'draw'。 –
好的,所以你需要问自己_why_' canDraw'是否是假的。该文档说:“如果视图对象没有隐藏,它可以在屏幕上绘制,它被附加到窗口中的视图层次结构(NSWindow),并且该窗口具有相应的窗口设备。”我的猜测是你的视图对象不符合这些标准。 – matt