我正在使用NSPopover
,当我将系统停靠颜色更改为深色(优胜美地新功能)时,我视图中的某些元素会反转它们的颜色。
例如,一些标签从黑色变为灰色,或者文本字段背景从白色变为黑色。如果我有一个白色背景的视图,它现在会变成模糊的黑暗效果。
所以两个问题:
我可以取消此行为并强制 UI 在常规模式下运行吗?
这里有什么规则可以让哪个元素反转它们的颜色吗?
因为似乎有些元素发生了变化,有些则没有。
这是我在优胜美地常规模式下的应用程序:
这是在优胜美地黑暗模式下:
我正在使用NSPopover
,当我将系统停靠颜色更改为深色(优胜美地新功能)时,我视图中的某些元素会反转它们的颜色。
例如,一些标签从黑色变为灰色,或者文本字段背景从白色变为黑色。如果我有一个白色背景的视图,它现在会变成模糊的黑暗效果。
所以两个问题:
我可以取消此行为并强制 UI 在常规模式下运行吗?
这里有什么规则可以让哪个元素反转它们的颜色吗?
因为似乎有些元素发生了变化,有些则没有。
这是我在优胜美地常规模式下的应用程序:
这是在优胜美地黑暗模式下:
可能是您正在使用的库导致此行为。我刚刚在一个新项目上进行了测试,无论我多么努力,我都无法让 NSPopover 变黑。
你在使用什么库?你是如何设置你的 NSPopover 的?
也许您可以尝试更改视图的外观属性?
view.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];
NSView 具有该属性appearance
,因为它符合NSAppearanceCustomization。
另请参阅NSAppearance。
————————————————————————</p>
找到了解决方案:
self.popover.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];
结果:
有很多方法可以做到这一点,但我建议接受它。它没有具体记录什么会改变以及如何改变。但是观察会告诉你该怎么做。首先,它要求您执行与选择加入相反的操作。选择加入是使用 Appkit 界面元素,以及使用作为系统颜色提供的 NSColor 名称和使用 NSVisualEffectView。这意味着要明确选择退出,您需要四处走动并基本上自定义视图,这主要意味着设置明确的颜色并偶尔进行子类化。开箱即用的 HUD 样式弹出框和面板将选择加入。