macOS 暗模式和 NSAboutPanelOptionCredits

Posted

技术标签:

【中文标题】macOS 暗模式和 NSAboutPanelOptionCredits【英文标题】:macOS Dark Mode and NSAboutPanelOptionCredits 【发布时间】:2019-05-09 07:52:24 【问题描述】:

我在应用商店中有一个名为 Range 的相当简单的应用,我想让暗模式兼容 macOS 10.14。我注意到关于窗口并没有改变所有的文本颜色。

我使用的是 NSAboutPanelOptionCredits,我只需要捆绑 Credits.rtf 文件,其余的由应用程序处理。

https://developer.apple.com/documentation/appkit/nsaboutpaneloptioncredits?language=objc

问题是,当我更改为暗模式时,文件中的文本保持黑色,而其他自动包含的文本更改为白色(应用程序名称、版本等...)我打开了 .rtf 文件并且没有继承设置,或任何类似的设置。

知道我做错了什么和/或遗漏了什么吗?

欣赏任何想法。 谢谢!

【问题讨论】:

【参考方案1】:

诀窍是使用语义颜色。

使用 Xcode,编辑您的 RTF 文件。选择文本并调出文本颜色选择器。

Xcode 将 Developer 颜色添加到颜色选择器。为您的文本选择适当的语义颜色;我倾向于使用labelColorsecondaryLabelColorlinkColor

当您切换到深色模式时,这些语义颜色会相应变化。

【讨论】:

【参考方案2】:

10.14 AppKit Release Notes 可能会有所帮助:

外观感知学分

您可以通过提供积分作为属性字符串或在应用程序包中放置 Credits.rtf 或 Credits.rtfd 来使积分区域与应用的外观相匹配。使用适当的系统颜色,如 textColor、linkColor 和 labelColor,以使文本以任何外观正确显示。 如果您使用 .rtf 或 .rtfd 文件为演职员表区域提供文本,则必须使用 macOS 10.14(beta 5 或更高版本)保存该文件才能接受外观感知处理。如果您在早期版本的 macOS 上创建文件 .rtf 或 .rtfd 文件,则仅当文件仅包含没有背景颜色的黑色文本时才会应用外观感知处理。

【讨论】:

【参考方案3】:

谁需要它..

什么时候打开:

【讨论】:

以上是关于macOS 暗模式和 NSAboutPanelOptionCredits的主要内容,如果未能解决你的问题,请参考以下文章

markdown 禁用MacOS中的“暗模式”以进行单一应用

使用暗模式修复 OSX 上的 Erlang 观察者

如何在macOS中打开或关闭Mac暗黑模式

macOS“Big Sur”检测深色菜单栏/系统托盘

NSComboBox +黑暗模式。如何更改表背景颜色?

如何覆盖css偏好颜色方案设置