如何使用Swift在代码中更改Mac应用程序视图的背景颜色?

时间:2017-01-22 03:44:21

标签: swift macos nsview

我正在开发单视图Mac应用程序,我想以编程方式更改背景颜色。我该怎么做?

3 个答案:

答案 0 :(得分:6)

将此代码放入主viewDidLoad()的{​​{1}}函数中。那是Cocoa应用程序模板中的NSViewController

ViewController.swift

显然,用您选择的颜色替换红色。

设置// tell the controller's view to use a CALayer as its backing store view.wantsLayer = true // change the background color of the layer view.layer?.backgroundColor = NSColor.red.cgColor 后,您可以更改颜色而无需再次设置。

答案 1 :(得分:3)

确保您尝试更改视图的背景属性,而不是视图控制器。视图控制器没有背景,因为它们没有显示任何内容,但它们的视图有:

class ViewController: NSViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    self.view.layer?.backgroundColor = NSColor.red.cgColor;
}

这会将viewcontroller主视图的背景颜色变为红色。

答案 2 :(得分:0)

这是更改 MacOS 背景颜色的扩展。

extension NSViewController{
    

    func setBackgroundColor(_ color : NSColor, alpha : CGFloat){
        
        view.wantsLayer = true
        view.layer?.backgroundColor = color.cgColor
        view.alphaValue = alpha
    }
}