7

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

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

所以两个问题:

  1. 我可以取消此行为并强制 UI 在常规模式下运行吗?

  2. 这里有什么规则可以让哪个元素反转它们的颜色吗?

因为似乎有些元素发生了变化,有些则没有。

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

在此处输入图像描述

这是在优胜美地黑暗模式下:

在此处输入图像描述

4

2 回答 2

10

可能是您正在使用的库导致此行为。我刚刚在一个新项目上进行了测试,无论我多么努力,我都无法让 NSPopover 变黑。

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

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

view.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];

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

另请参阅NSAppearance

————————————————————————</p>

找到了解决方案:

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

结果:

于 2014-10-04T10:14:51.537 回答
2

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

于 2014-10-04T10:38:47.643 回答