Swift + NSViewController background color (Mac App)

后端 未结 2 1324
长发绾君心
长发绾君心 2021-02-07 00:23

I am trying to change the background color of my View. The View Controller class is NSViewController type.

How this can be done? In iOS UIKit (UIView

2条回答
  •  心在旅途
    2021-02-07 01:16

    I managed to change background color of main view. NSViewController does not have backgroundColor property indeed, so I used the layer property of NSView that belongs to NSViewController. Here is the code.

    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
            }
    
        }
    }
    

    It will initialize the view controller with red background.

    For Title Bar color, I created NSWindowController and assinged it to main window controller from storyboard. Here is the code.

    class MainWindow: NSWindowController {
    
        override func windowDidLoad() {
            super.windowDidLoad()
    
            super.window?.backgroundColor = NSColor(calibratedRed: 0.0, green: 1.0, blue: 0.0, alpha: 1.0)
        }
    
    }
    

    I hope this will help.

提交回复
热议问题