我正在使用NSPopover
,当我将系统底座颜色更改为深色(Yosemite新功能)时,我视图中的某些元素会反转它们的颜色。
例如,某些标签从黑色变为灰色,或者文本字段背景从白色变为黑色。如果我有一个带白色背景的视图,它现在变为模糊的暗效果。
所以有两个问题:
我是否可以取消此行为并强制用户界面像普通模式一样行事?
这里有哪些规则可以反转它们的颜色吗?
因为似乎某些元素发生了变化而有些元素没有变化。
这是我在Yosemite常规模式中的应用程序:
这是优胜美地黑暗模式:
答案 0 :(得分:10)
它可能是您正在使用的库,导致此行为。我刚刚测试了一个新项目,无论我怎么努力,我都无法使NSPopover成为黑色。
您使用的是哪些图书馆?你是如何设置NSPopover的?
也许您可以尝试更改视图的外观属性?
view.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];
NSView具有属性appearance
,因为它符合NSAppearanceCustomization。
另见NSAppearance。
------------------------
找到解决方案:
self.popover.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];
结果:
答案 1 :(得分:2)
有很多方法可以做到这一点,但我建议接受它。 它没有具体记录会发生什么变化以及如何变化。 但观察会告诉你该怎么做。 主要是它要求你选择相反。 选择使用Appkit界面元素以及使用NSColor名称作为系统颜色和使用NSVisualEffectView。 这意味着要明确选择退出,你需要绕过并基本上自定义视图,这主要意味着设置明确的颜色和偶尔子类化。 开箱即用的HUD风格的popovers和面板将选择加入。