Swift - Cocoa - 改变窗口颜色?

Cas*_*sey 2 macos cocoa swift

我正在尝试更改我的OSX应用程序的窗口颜色.

我发现很少有关于如何做的信息,但我已经看到了一些例子.

我试过了:

在我的AppDelegate: NSApplication.shared.mainWindow?.backgroundColor = NSColor.black 哪个不起作用.

在我的ViewController中: self.view.window?.backgroundColor = NSColor.blue

例

Tho*_*cic 6

好吧,所以我假设你在这里使用故事板(因为否则Xcode创建的模板会给你一个window属性AppDelegate,你可能会成功尝试设置背景颜色).

有很多选项如何执行此操作但基本上您将使用NSWindow子类或NSWindowController子类来负责设置窗口外观(对于那些无法在Interface Builder中设置的属性)

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
    }
}
Run Code Online (Sandbox Code Playgroud)

并将此子类设置为storyboard中的类.

NSWindowController子类:

class BlackWindowController: NSWindowController {
    override func windowDidLoad() {
        super.windowDidLoad()
        window?.backgroundColor = .black
        window?.titlebarAppearsTransparent = true
    }
}
Run Code Online (Sandbox Code Playgroud)

并再次在故事板中设置类.您可以在窗口控制器中修改窗口的许多变体,windowDidLoad()只是一个建议.

希望这可以帮助.