我正在为我的菜单栏应用程序使用NSPopover,它的默认水色主题(以及浅色和深色)似乎用半透明背景绘制它。
我想要一个不透明的背景。
所以我搜索了SO,发现我可以像这样设置contentViewController的背景颜色:
if let popoverView = popover.contentViewController?.view.superview {
popoverView.wantsLayer = true
popoverView.layer?.backgroundColor = NSColor.controlBackgroundColor.withAlphaComponent(1.0).cgColor
}
这样可行,但该视图控制器中的任何UI控件都将其背景绘制为透明,如下所示:
我已尝试在UIBox中嵌入UI控件,但我得到了相同的透明背景颜色。
解决方案是什么?
这是一个sample project,展示了我所看到的内容:
编辑:有类似的SO票,但海报想要透明背景而不是透明。无论如何,没有一个解决方案解决了我的问题。答案 0 :(得分:1)
感谢Willeke,答案是在AppDelegate.applicationDidFinishLaunching()
中添加这个 popover.appearance = NSAppearance(named: .aqua)