优胜美地深色的NSPopover颜色反转

Mar*_*rio 7 macos objective-c nspopover osx-yosemite

我正在使用NSPopover,当我将系统底座颜色更改为深色(Yosemite新功能)时,我视图中的一些元素会反转它们的颜色.

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

所以有两个问题:

  1. 我可以取消此行为并强制用户界面像常规模式一样吗?

  2. 这里有哪些规则可以反转它们的颜色?

因为似乎有些元素改变而有些则没有.

这是我在优胜美地常规模式中的应用:

在此输入图像描述

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

在此输入图像描述

ink*_*ket 10

它可能是您正在使用的库导致此行为.我刚刚测试了一个新项目,无论我怎么努力,我都无法使NSPopover成为黑色.

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

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

view.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];

NSView具有该属性,appearance因为它符合NSAppearanceCustomization.

另见NSAppearance.

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

找到解决方案:

self.popover.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];
Run Code Online (Sandbox Code Playgroud)

结果:


uch*_*aka 2

有很多方法可以做到这一点,但我建议采用它。没有具体记录将改变什么以及如何改变。但观察会告诉你该怎么做。主要是它要求您执行与选择相反的操作。选择加入是按原样使用 Appkit 界面元素以及使用作为系统颜色提供的 NSColor 名称和使用 NSVisualEffectView。这意味着要明确选择退出,您需要四处走动并基本上自定义视图,这主要意味着设置显式颜色并偶尔进行子类化。开箱即用的 HUD 风格弹出窗口和面板将被选择。