更改标题栏颜色 - Mac

时间:2015-03-28 18:22:58

标签: macos cocoa colors titlebar uivisualeffectview

我正在使用Mac应用。如果有可能改变NSWindow的标题栏颜色,我在徘徊?我知道如何删除它,但问题是它也删除了三个按钮(关闭,最小化,调整大小)。我想保留三个按钮,但摆脱了酒吧。

有没有这样做?

enter image description here

2 个答案:

答案 0 :(得分:4)

Swift Way

我试图找到这个时有点疯狂,当我解决这个问题时,当我所阅读的所有这些答案都是如此之长时,它只有两条线而无法相信!

我的class ViewController我去了viewDidAppear并将其添加到了它。

override func viewDidAppear() {
        view.window?.titlebarAppearsTransparent = true
        view.window?.backgroundColor = NSColor.clearColor()
    }

非常简单。

答案 1 :(得分:3)

是的,它是在SO上完成的:

How to Change Color of NSWindow Title Bar in OSX

他们说单链接的答案在这里是不好的形式,但是哎呀 - 它主要是你所要求的。它有效 - 我自己也尝试过。

需要注意的几件事情:他的代码只适用于NSApp的默认窗口......所以你需要做一些工作来将它推广到/" any" NSWindow。 (把他放在AppDelegate中的代码移到你自己的NSWindow子类或你的NSWindowController。可能是控制器。)

此外,他说要使用" MyTitleView"继承NSView,但在代码中,它实际上被称为" BlackTitlebarView" ...只需选择一个名称,保持一致,没关系。此外,标题文本的颜色在drawString:方法中,他有[NSColor whiteColor]。此外,他喜欢渐变,你在运行代码时会看到它...如果你不需要或不想要它,你可以用更简单的东西替换他的代码块来只绘制一个颜色...但你可能会考虑使用这些花哨的东西,因为你免费获得它。