Cocoa 如何使用“如何使菜单栏应用程序看起来很好”;“暗模式”;在约塞米蒂?

Cocoa 如何使用“如何使菜单栏应用程序看起来很好”;“暗模式”;在约塞米蒂?,cocoa,osx-yosemite,menubar,rubymotion,osx-elcapitan,Cocoa,Osx Yosemite,Menubar,Rubymotion,Osx Elcapitan,在开发menubar应用程序的过程中,我很难找到让应用程序看起来更好的首选方法。我本以为苹果控制系统在很大程度上会处理这一问题,但看起来并非如此 确保菜单栏应用程序在明暗两种模式下都看起来不错的首选方法是什么?我是否缺少一些更容易实现这一点的控件功能,或者我需要手动检测模式并适当地修改控件?好吧,您还没有解释(或显示)它以什么方式看起来不好。您可能正在使用普通的非模板图像作为其图标。您应该使用模板图像,该图像的唯一重要部分是alpha遮罩。您可以通过使用“template”后缀(例如“FooTe

在开发menubar应用程序的过程中,我很难找到让应用程序看起来更好的首选方法。我本以为苹果控制系统在很大程度上会处理这一问题,但看起来并非如此

确保菜单栏应用程序在明暗两种模式下都看起来不错的首选方法是什么?我是否缺少一些更容易实现这一点的控件功能,或者我需要手动检测模式并适当地修改控件?

好吧,您还没有解释(或显示)它以什么方式看起来不好。您可能正在使用普通的非模板图像作为其图标。您应该使用模板图像,该图像的唯一重要部分是alpha遮罩。您可以通过使用“template”后缀(例如“FooTemplate.png”)对其命名,或者通过在其上调用
-setTemplate:
来告诉系统它是一个模板图像。

,并且我不必做任何事情来使它在黑暗主题中看起来很好

轻主题:

黑暗主题:

您需要做的最重要的事情是:

  • 使用系统颜色(例如,
    [NSColor textColor]
    [NSColor textBackgroundColor]
    。这些颜色会自动适应各种主题。请参阅Apple的OS X人机界面指南部分

  • 使用模板图像。这些图像也适应颜色的变化。请参阅苹果的OSX人机界面指南

  • 值得注意的是,苹果并没有通过编程轻松地检测正在运行的颜色主题(有一些技巧,但我不知道有任何被认可的方法)。我的感觉是,他们是故意这么做的,所以开发人员不必按主题定制。使用系统颜色和模板图像,你不应该这样做

    更新:
    这里的示例项目:

    仍然遇到一些问题。你能提供实际的示例代码吗?这很奇怪,因为我使用了一个带有图像模板的按钮,无论我现在做什么,它在黑暗中看起来都不好。在上面截图的UI中,基本上没有代码。这些视图是在IB中设置的。但是,有一个骨架Xcode pGitHub上的项目,请参见上面的编辑。