我是Swift 4的新手,在Xcode中进行编码9.尝试创建一个非常简单的MacOS绘图应用程序,只是为了更多地了解Swift。我复制了一些非常简单的教程代码,但是收到错误"使用未解析的标识符' NSRectFill'。我注意到编译器暗示我使用__NSRectFill并且这有用......但为什么呢?我做错了吗?
import Cocoa
class GraphView: NSView {
override func draw(_ dirtyRect: NSRect) {
super.draw(dirtyRect)
NSColor.white.setFill()
NSRectFill(bounds)
}
}
答案 0 :(得分:13)
从Swift 3开始,NSRectFill
已成为NSRect / CGRect
的方法。所以你应该调用bounds.fill()
。
尽管如此,它可能仍然依赖于某些Core Foundation例程,如__NSRectFill
。避免使用那些双重强制函数会更好,因为它们是低级别的系统内容(文档记录很少)(至少是公开的)。