【发布时间】:2015-03-28 18:22:58
【问题描述】:
我正在开发一个 Mac 应用程序。我是否可以在 NSWindow 中更改标题栏颜色?我知道如何删除它,但问题是它也删除了三个按钮(关闭、最小化、调整大小)。我想保留三个按钮但摆脱栏。
有没有办法做到这一点?
【问题讨论】:
标签: macos cocoa colors titlebar uivisualeffectview
我正在开发一个 Mac 应用程序。我是否可以在 NSWindow 中更改标题栏颜色?我知道如何删除它,但问题是它也删除了三个按钮(关闭、最小化、调整大小)。我想保留三个按钮但摆脱栏。
有没有办法做到这一点?
【问题讨论】:
标签: macos cocoa colors titlebar uivisualeffectview
迅捷之道
我有点疯狂地试图找到这个,当我发现我正在阅读的所有这些答案这么长时,我简直不敢相信它只有两行!
我是我的class ViewController 我去了 viewDidAppear 并将其添加到其中。
override func viewDidAppear() {
view.window?.titlebarAppearsTransparent = true
view.window?.backgroundColor = NSColor.clearColor()
}
非常简单。
【讨论】:
是的,它已经在这里完成了:
How to Change Color of NSWindow Title Bar in OSX
他们说这里的单链接答案是不好的形式,但见鬼——它主要满足你的要求。它有效——我自己试过了。
需要注意的几件事:他的代码只适用于 NSApp 的默认窗口......所以你需要做一些工作来将它推广到你的 /“任何”NSWindow 的情况。 (将他放在 AppDelegate 中的代码移到您自己的 NSWindow 子类或您的 NSWindowController 中。可能是控制器。)
另外,他说用“MyTitleView”子类化NSView,但在代码中,它实际上叫做“BlackTitlebarView”......只要选择一个名字,保持一致,就可以了。此外,标题文本的颜色在 drawString: 方法中,其中他有 [NSColor whiteColor]。此外,他喜欢渐变,当您运行代码时您会看到...但是你可能会考虑使用这些花哨的东西,因为你是免费的。
【讨论】: