2014-10-01 73 views
7

我使用NSPopover,当我将系统底座颜色更改为黑色(优胜美地新功能)时,我的视图中的某些元素会反转它们的颜色。优胜美地深色NSPopover颜色反转

例如,一些标签从黑色变为灰色,或者文本字段背景从白色变为黑色。如果我有一个白色背景的视图,它现在变成模糊的黑暗效果。

所以两个问题:

  1. 我可以取消此行为,并强制在正常模式下表现得像用户界面?

  2. 这里有什么规则哪个元素颠倒它们的颜色?

因为它似乎有些元素会改变,有些则不会。

这是我在约塞米蒂常规模式下的应用程序:

enter image description here

而且这是在约塞米蒂黑暗模式:

enter image description here

回答

2

有办法做到这一点,但我会建议拥抱它。 没有具体记录什么会改变以及如何改变。 但观察会告诉你该怎么做。 首先它需要你做相反的选择。 选择使用Appkit界面元素,以及使用NSColor名称作为系统颜色提供并使用NSVisualEffectView。 这意味着要明确地选择退出,你需要四处走动,基本上自定义视图,主要是设置显式颜色和偶尔子类化。 开箱即可使用HUD款式的弹出和面板。

+0

Popups可能会限制在自定义。如果用户打开“可访问性偏好设置”中的“降低透明度”,您也会看到不同之处。 – uchuugaka 2014-10-04 10:40:54

+0

何时发生此行为(颜色颠倒)?在进入暗模式时,它会在任何窗口中出现一些UI元素吗?或只有在弹出时? – Mario 2014-10-04 10:50:38

+0

黑暗模式。有NSNotification您可以观察到的和可访问性的变化。新版本只能在AppKit 10.10版发行说明或标题中注明。我忘记了哪个标题。 – uchuugaka 2014-10-04 11:40:23

10

它可能是一个图书馆您使用的是造成这种行为。我只是在一个新项目上进行测试,无论我尝试多么努力,我都无法使NSPopover变黑。

你在使用什么库?你是如何设置你的NSPopover的?

也许你可以尝试改变视图的外观属性?

view.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];

的NSView有属性appearance因为它符合NSAppearanceCustomization

另请参阅NSAppearance

------------------------

找到了解决方案:

self.popover.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua]; 

结果:

+0

我添加了一张照片,如您所见,元素背景变为黑色。 – Mario 2014-10-04 10:32:56

+0

我添加了另一个应用程序的图像,而没有选择优胜美地暗模式 – Mario 2014-10-04 10:35:36

+0

我得到它的工作,所以检查更新的答案。 – inket 2014-10-04 12:03:56