2015-08-25 40 views
3

我正在尝试更改NSView的背景颜色,并试用了this answer中概述的解决方案之一。但是,它不适合我。我在这里错过了什么?我应该在这里使用viewWillAppear()还是仅适用于iOS?在Swift 2.0中更改NSView的背景颜色

相关代码:

class ViewController: NSViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.view.wantsLayer = true 

    } 

    override var representedObject: AnyObject? { 
     didSet { 
     // Update the view, if already loaded. 
     } 
    } 

    override func awakeFromNib() { 
     if self.view.layer != nil { 
      let color : CGColorRef = CGColorCreateGenericRGB(1.0, 0, 0, 1.0) 
      self.view.layer?.backgroundColor = color 
     } 

    } 
} 

P.S - 我是新来OS X/iOS的编程和试图通过文档和现有的解决方案,以图走出自己的路。使用Xcode的7 beta 4版本

+0

你的方法也适用我使用的Xcode 7测试版5 –

+0

因为我认为有些事情得到了在设定初始控制器搞砸了。尽管感谢您的回答。有用! –

+0

不用客气 –

回答

9
import Cocoa 

class ViewController: NSViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     view.wantsLayer = true 
     view.layer?.backgroundColor = NSColor(red: 1, green: 0, blue: 0, alpha: 1).CGColor 

    } 

    override var representedObject: AnyObject? { 
     didSet { 

     } 
    } 
} 
+1

view.wantsLayer = true是这里的关键。似乎开始点CALayer不会自动分配给视图。不记得它什么时候推出 – Alfishe

+0

另一种选择是改变窗口背景颜色viewWillAppear –

+0

http://stackoverflow.com/a/42755175/2303865 –