从非透明NSPopover

时间:2018-02-20 23:28:58

标签: swift user-interface cocoa

我正在为我的菜单栏应用程序使用NSPopover,它的默认水色主题(以及浅色和深色)似乎用半透明背景绘制它。

我想要一个不透明的背景。

所以我搜索了SO,发现我可以像这样设置contentViewController的背景颜色:

    if let popoverView = popover.contentViewController?.view.superview {
        popoverView.wantsLayer = true
        popoverView.layer?.backgroundColor = NSColor.controlBackgroundColor.withAlphaComponent(1.0).cgColor
    }

这样可行,但该视图控制器中的任何UI控件都将其背景绘制为透明,如下所示:

enter image description here

我已尝试在UIBox中嵌入UI控件,但我得到了相同的透明背景颜色。

解决方案是什么?

这是一个sample project,展示了我所看到的内容:

编辑:有类似的SO票,但海报想要透明​​背景而不是透明。无论如何,没有一个解决方案解决了我的问题。

1 个答案:

答案 0 :(得分:1)

感谢Willeke,答案是在AppDelegate.applicationDidFinishLaunching()

中添加这个
    popover.appearance = NSAppearance(named: .aqua)