通过编程方式创建的NSView在添加到父视图时不会出现



我有以下代码在我的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

所以你的视图没有图层,并且对图层应用背景色没有效果,因为(正如我刚才说的)你的视图没有图层。视图在那里但是你看不见它;它是透明的,就像隐形人。

最新更新