我正在为我的菜单栏应用程序使用NSPopover,它的默认水色主题(也包括亮和暗)将其绘制为半透明的背景。
我想要一个不透明的背景。
所以我搜索了一下,发现我可以像这样设置contentViewController的背景色:
if let popoverView = popover.contentViewController?.view.superview {
popoverView.wantsLayer = true
popoverView.layer?.backgroundColor = NSColor.controlBackgroundColor.withAlphaComponent(1.0).cgColor
}
这是可行的,但是视图控制器中的任何UI控件都将其背景绘制为透明的,如下所示:
我曾尝试将UI控件嵌入到NSBox中,但得到的是相同的透明背景图。
解决方案是什么?
这是一个演示我所看到的内容的sample project:
编辑:有类似的SO ticket,但海报想要透明的背景,而不是不透明的背景。在任何情况下,没有一个解决方案解决了我的问题。
发布于 2018-02-22 01:09:59
多亏了Willeke,答案是在AppDelegate.applicationDidFinishLaunching()中添加这个。
popover.appearance = NSAppearance(named: .aqua)
https://stackoverflow.com/questions/48895870
复制相似问题