我正在尝试更改OSX应用的窗口颜色。
我找不到有关如何操作的信息,但我已经看到了一些例子。
我试过了:
在我的AppDelegate中:
NSApplication.shared.mainWindow?.backgroundColor = NSColor.black
哪个没用。
在我的ViewController中:
self.view.window?.backgroundColor = NSColor.blue
答案 0 :(得分:6)
好的,所以我假设你在这里使用故事板(因为否则Xcode创建的模板会在window
中给你一个AppDelegate
属性,你可能会成功尝试设置背景颜色)。
有很多选项如何执行此操作但基本上您将使用NSWindow
子类或NSWindowController
子类来负责设置窗口外观(对于那些无法在接口中设置的属性)至少建造者)
NSWindow子类:
class BlackWindow: NSWindow {
override init(contentRect: NSRect, styleMask style: NSWindow.StyleMask, backing backingStoreType: NSWindow.BackingStoreType, defer flag: Bool) {
super.init(contentRect: contentRect, styleMask: style, backing: backingStoreType, defer: flag)
backgroundColor = .black
}
}
并将此子类设置为故事板中的类。
NSWindowController子类:
class BlackWindowController: NSWindowController {
override func windowDidLoad() {
super.windowDidLoad()
window?.backgroundColor = .black
window?.titlebarAppearsTransparent = true
}
}
再次在故事板中设置类。您可以在窗口控制器中修改窗口的许多变体,windowDidLoad()
只是一个建议。
希望这有帮助。