添加到父视图时,以编程方式创建的 NSView 不会出现
Programmatically created NSView does not appear when added to parent view
我的 ViewController
中有以下代码
@IBAction func showView(sender: AnyObject) {
show()
}
func show() {
let viewHeight: CGFloat = self.view.frame.height
let viewWidth: CGFloat = self.view.frame.width
let posX: CGFloat = self.view.frame.origin.x
let posY: CGFloat = self.view.frame.origin.y
let viewFrame: CGRect = CGRectMake(posX, posY, viewWidth, viewHeight)
let view: NSView = NSView(frame: viewFrame)
view.layer?.backgroundColor = NSColor.redColor().CGColor
self.view.addSubview(view)
}
我不明白为什么点击 showView
按钮后 NSView 没有出现?作为完整性检查,我尝试将调用(以及稍后的代码)移动到 viewDidLoad
方法,但再次无济于事。
我错过了什么?
问题是你从来没说过
view.wantsLayer = true
因此您的视图没有图层,并且向图层应用背景颜色没有效果,因为(正如我刚才所说)您的视图没有图层。所以风景就在那里,但您看不到;它是透明的,就像隐形人一样。
我的 ViewController
中有以下代码@IBAction func showView(sender: AnyObject) {
show()
}
func show() {
let viewHeight: CGFloat = self.view.frame.height
let viewWidth: CGFloat = self.view.frame.width
let posX: CGFloat = self.view.frame.origin.x
let posY: CGFloat = self.view.frame.origin.y
let viewFrame: CGRect = CGRectMake(posX, posY, viewWidth, viewHeight)
let view: NSView = NSView(frame: viewFrame)
view.layer?.backgroundColor = NSColor.redColor().CGColor
self.view.addSubview(view)
}
我不明白为什么点击 showView
按钮后 NSView 没有出现?作为完整性检查,我尝试将调用(以及稍后的代码)移动到 viewDidLoad
方法,但再次无济于事。
我错过了什么?
问题是你从来没说过
view.wantsLayer = true
因此您的视图没有图层,并且向图层应用背景颜色没有效果,因为(正如我刚才所说)您的视图没有图层。所以风景就在那里,但您看不到;它是透明的,就像隐形人一样。