Mac OS X 全局色调与 iOS 相似

4

在OS X中有没有可能设置全局的色调颜色?如果我想在Cocoa控件(比如NSTabView)上设置品牌颜色,我应该怎么做?


2
用户可以在“系统偏好设置/通用”中设置控件色调颜色。这不是为了“应用品牌化”,因为它适用于所有应用程序,而且您只能在“蓝色”和“石墨色”之间选择。 - Aderstedt
https://dev59.com/AoXca4cB1Zd3GeqPOdt7#28617708 - Nishant
3个回答

0

如果您需要在应用程序中更改它

类NSAppearance:NSObject,NSCoding描述NSAppearance对象表示指定应用程序中一部分UI元素适用的标准外观的文件。 应用程序可以包含多个外观文件,并且由于NSAppearance符合NSCoding,因此您可以使用Interface Builder将UI元素分配给外观。


0
我们需要为一个应用程序做这个,因为它想要在 Windows 和 Mac OS X 版本之间拥有非常相似的外观(不要评判我——这是客户想要的)。我们最终做的事情更或多或少是:
  1. 创建一个由品牌批准的颜色的 NSDictionary,按使用颜色的方式进行索引(*文本颜色、背景颜色、按钮颜色等)。
  2. 在 InterfaceBuilder 检查器中添加一个“用户定义的运行时属性”,告诉每个视图使用哪些颜色。
  3. 编写一个 NSView 的类别(以及其他一些 Appkit 视图),实现该属性的 setter,然后调用 -setBackgroundColor: 或任何其他你需要更改默认颜色的 AppKit API。
  4. 由于 -setBackgroundColor: 仅适用于具有核心动画层的视图,因此我们最终在我们的 NSView 属性 setter 中添加了代码,以在每个需要非默认背景颜色的视图上调用 -setWantsLayer:YES

0
另一种方法是创建一个“外观文件”,您可以加载它来覆盖AppKit控件的视觉外观。这不是一个非常好文档化的过程,但请参阅此相关的StackOverflow问题/答案以获取详细信息。 如何为NSAppearance制作“外观文件”?

谢谢。我已经基本了解该怎么做了。这不像iOS那样容易。 - Dan Jiang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接