Swift 非透明NSPover上的“从NSButton中渗出”复选框
我正在为我的菜单栏应用程序使用一个nspover,它的默认aqua主题(以及浅和暗)似乎用半透明的背景来绘制它 我想要一个不透明的背景 所以我搜索了So,发现我可以为contentViewController设置背景色,如下所示:Swift 非透明NSPover上的“从NSButton中渗出”复选框,swift,user-interface,cocoa,Swift,User Interface,Cocoa,我正在为我的菜单栏应用程序使用一个nspover,它的默认aqua主题(以及浅和暗)似乎用半透明的背景来绘制它 我想要一个不透明的背景 所以我搜索了So,发现我可以为contentViewController设置背景色,如下所示: if let popoverView = popover.contentViewController?.view.superview { popoverView.wantsLayer = true popoverView.lay
if let popoverView = popover.contentViewController?.view.superview {
popoverView.wantsLayer = true
popoverView.layer?.backgroundColor = NSColor.controlBackgroundColor.withAlphaComponent(1.0).cgColor
}
这是可行的,但该视图控制器中的任何UI控件都将其背景绘制为透明,如下所示:
我曾尝试将UI控件嵌入到NSBox中,但得到了相同的透明背景绘制
解决办法是什么
下面是一个演示我所看到的:
编辑:也有类似的海报,但海报需要透明的背景,而不是不透明的。无论如何,这些解决方案都没有解决我的问题。多亏了Willeke,答案是在AppDelegate.applicationdFinishLaunching()中添加此选项
可能的复制品是的,复制品,但海报需要透明的背景,而不是不透明的。无论如何,没有一个解决方案解决了我的问题。
popover.appearance=NSAppearance(名为:.aqua)
中的ApplicationIDFinishLaunching
对我有效。是的,你是对的。它确实解决了问题。我在我的主要项目中的代码中包含了这一点,并且已经尝试过了,但它在那里不起作用。修复了我测试项目中的所有问题。
popover.appearance = NSAppearance(named: .aqua)