ビューの背景色を変更しようとしています。 View ControllerクラスはNSViewController
タイプです。
これはどのように行うことができますか? iOS UIKit(UIViewController
)にはself.view.backgroundColor
ですが、NSViewController
にはありません。
2番目の問題は、アプリケーションのタイトルバーの色を変更する方法ですか。背景色は影響しないと思います。
Macアプリケーション、言語Swift。 XCode 6.1。
メインビューの背景色をなんとか変えました。 NSViewControllerには実際にはbackgroundColorプロパティがないため、NSViewControllerに属する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
}
}
}
赤い背景でView Controllerを初期化します。
タイトルバーの色については、NSWindowControllerを作成し、ストーリーボードからメインウィンドウコントローラーに割り当てました。これがコードです。
class MainWindow: NSWindowController {
override func windowDidLoad() {
super.windowDidLoad()
super.window?.backgroundColor = NSColor(calibratedRed: 0.0, green: 1.0, blue: 0.0, alpha: 1.0)
}
}
これがお役に立てば幸いです。
注意:setLayer:またはsetWantsLayer:を呼び出すと、アプリケーションにあるWebViewが非常に独創的な方法で中断されます。 (別のウィンドウでも...)
こちらの回答をご覧ください NSViewの背景色を変更する最良の方法 。