Swift+NSViewController color de fondo(aplicación Mac)
colors background (2)
Estoy tratando de cambiar el color de fondo de mi vista. La clase View Controller es del tipo NSViewController
.
¿Cómo se puede hacer esto? En iOS UIKit ( UIViewController
) hay self.view.backgroundColor
, pero NSViewController
no tiene eso.
Y el segundo problema es ¿cómo puedo cambiar el color de la barra de título de las aplicaciones? Creo que el color de fondo no afecta a eso.
Aplicación para Mac, lenguaje Swift. Xcode 6.1.
Atención: llamar a setLayer: o setWantsLayer: rompe cualquier vista web que pueda tener en su aplicación de maneras muy creativas. (Incluso en diferentes ventanas ...)
Por favor vea esta respuesta aquí. La mejor manera de cambiar el color de fondo para un NSView .
Me las arreglé para cambiar el color de fondo de la vista principal. De hecho, NSViewController no tiene la propiedad backgroundColor, así que usé la propiedad de capa de NSView que pertenece a NSViewController. Aquí está el código.
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
}
}
}
Se inicializará el controlador de vista con fondo rojo.
Para el color de la barra de título, creé NSWindowController y lo asigné al controlador de la ventana principal desde el guión gráfico. Aquí está el código.
class MainWindow: NSWindowController {
override func windowDidLoad() {
super.windowDidLoad()
super.window?.backgroundColor = NSColor(calibratedRed: 0.0, green: 1.0, blue: 0.0, alpha: 1.0)
}
}
Espero que esto sea de ayuda.