更改NSView的角半径应该非常简单但是我收到错误消息“致命错误:无法打开Optional.None”。我是否有机会以10.9而不是10.10这样做,这是因为框架差异而发生的?或者代码错了。
class aRoundView: NSView {
let cornerRad = 5.0
init(frame: NSRect) {
super.init(frame: frame)
self.layer.cornerRadius = cornerRad
}
override func drawRect(dirtyRect: NSRect)
{
super.drawRect(dirtyRect)
NSColor.redColor().setFill()
NSRectFill(dirtyRect)
}
}
在
中调用它func applicationDidFinishLaunching(aNotification: NSNotification?) {
let aView = mainViewTest(frame: NSMakeRect(0, 0, 100, 100))
self.window.contentView.addSubview(aView)
}
实际上并非如此。任何使用self.layer的迭代都会给出相同的结果,backgroundcolor等。
答案 0 :(得分:8)
这是因为self.layer
是一个Optnional值,目前尚未设置。在self.wantsLayer = true
之前添加self.layer.cornerRadius
,以确保存在正确的layer
。
init(frame: NSRect) {
super.init(frame: frame)
self.wantsLayer = true
self.layer.cornerRadius = cornerRad
}