如何使用 Yosemite 中的 "Dark Mode" 使菜单栏应用程序看起来不错?
How to make a menubar app look good with "Dark Mode" in Yosemite?
在开发菜单栏应用程序时,我很难找到使应用程序真正看起来不错的首选方法。我原以为 Apple 控件基本上可以解决大部分问题,但似乎没有。
确保菜单栏应用程序在浅色和深色模式下看起来都不错的首选方法是什么?我是否缺少一些更容易实现这一点的控制功能,或者我是否需要手动检测模式并适当修改控件?
好吧,你还没有解释(或展示)它看起来不好的地方。可能,您正在为其图标使用普通的非模板图像。您应该使用模板图像,该图像的唯一重要部分是 alpha 蒙版。您通过使用 "Template" 后缀(例如 "FooTemplate.png")命名它或通过对其调用 -setTemplate:
来告诉系统它是模板图像。
I have a menubar app,而且我不需要做任何事情就可以让它在深色主题中看起来不错。
浅色主题:
深色主题:
您需要做的最重要的事情是:
使用系统颜色(例如,[NSColor textColor]
、[NSColor textBackgroundColor]
。这些会自动适应各种主题。请参阅 Apple [=50= 的 Color and Typography 部分] X 人机界面指南。
使用模板图像。这些也适应颜色变化。请参阅 Apple OS X 人机界面指南的 System-Provided Images section。
值得注意的是,Apple 并未以编程方式轻松检测哪个颜色主题是 运行(有一些技巧,但我不知道有任何认可的方法)。我的感觉是他们是故意这样做的,所以开发人员不会为每个主题做定制的事情。使用系统颜色和模板图像,您不必这样做。
更新:
此处示例项目:https://github.com/zpasternack/MenuBarTest
在开发菜单栏应用程序时,我很难找到使应用程序真正看起来不错的首选方法。我原以为 Apple 控件基本上可以解决大部分问题,但似乎没有。
确保菜单栏应用程序在浅色和深色模式下看起来都不错的首选方法是什么?我是否缺少一些更容易实现这一点的控制功能,或者我是否需要手动检测模式并适当修改控件?
好吧,你还没有解释(或展示)它看起来不好的地方。可能,您正在为其图标使用普通的非模板图像。您应该使用模板图像,该图像的唯一重要部分是 alpha 蒙版。您通过使用 "Template" 后缀(例如 "FooTemplate.png")命名它或通过对其调用 -setTemplate:
来告诉系统它是模板图像。
I have a menubar app,而且我不需要做任何事情就可以让它在深色主题中看起来不错。
浅色主题:
深色主题:
您需要做的最重要的事情是:
使用系统颜色(例如,
[NSColor textColor]
、[NSColor textBackgroundColor]
。这些会自动适应各种主题。请参阅 Apple [=50= 的 Color and Typography 部分] X 人机界面指南。使用模板图像。这些也适应颜色变化。请参阅 Apple OS X 人机界面指南的 System-Provided Images section。
值得注意的是,Apple 并未以编程方式轻松检测哪个颜色主题是 运行(有一些技巧,但我不知道有任何认可的方法)。我的感觉是他们是故意这样做的,所以开发人员不会为每个主题做定制的事情。使用系统颜色和模板图像,您不必这样做。
更新: 此处示例项目:https://github.com/zpasternack/MenuBarTest