-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