2014-10-24 3 views
19

Ich versuche, die Hintergrundfarbe meiner Ansicht zu ändern. Die View Controller-Klasse ist NSViewController Typ.Swift + NSViewController Hintergrundfarbe (Mac App)

Wie kann das gemacht werden? In iOS UIKit (UIViewController) gibt es self.view.backgroundColor, aber NSViewController hat das nicht.

Und das zweite Problem ist, wie kann ich die Farbe der Anwendungen Titelleiste ändern? Ich denke, die Hintergrundfarbe hat keinen Einfluss darauf.

Mac-Anwendung, Sprache Swift. XCode 6.1.

Antwort

43

Ich habe es geschafft, Hintergrundfarbe der Hauptansicht zu ändern. NSViewController hat tatsächlich keine backgroundColor-Eigenschaft, daher habe ich die Layer-Eigenschaft von NSView verwendet, die zu NSViewController gehört. Hier ist der 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 
     } 

    } 
} 

Es wird den View-Controller mit rotem Hintergrund initialisieren.

Für Titelleiste Farbe, ich NSWindowController erstellt und assanged es zum Hauptfenster Controller von Storyboard. Hier ist der 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) 
    } 

} 

Ich hoffe, das wird helfen.

+8

Omg Meine Augen O_O – nmdias