3

有没有办法在 OS X 中设置全局色调颜色。如果我想在 NSTabView 等 Cocoa 控件上设置品牌颜色。云我怎么做?

4

3 回答 3

0

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

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

于 2015-11-18T16:33:43.847 回答
0

我们需要为希望在 Windows 和 Mac OS X 版本之间具有非常相似外观的应用程序执行此操作(不要评判我 - 这是客户想要的)。我们最终做的或多或少是:

  1. 创建品牌认可颜色的 NSDictionary,按颜色的用途(*文本颜色、背景颜色、按钮颜色等)进行索引。
  2. 在 InterfaceBuilder 检查器中添加“用户定义的运行时属性”,告诉每个视图使用哪种颜色。
  3. 在 NSView(和一些其他 Appkit 视图)上编写一个类别,为该属性实现一个设置器,然后调用-setBackgroundColor:或任何其他您需要更改默认颜色的 AppKit API。
  4. 由于-setBackgroundColor:仅在具有核心动画层的视图上可用,我们最终将代码添加到我们的 NSView 属性设置器以在每个需要非默认背景颜色的视图上调用-setWantsLayer:YES 。
于 2015-11-18T18:30:13.470 回答
0

另一种方法是创建一个“外观文件”,您可以加载该文件以覆盖 AppKit 控件的视觉外观。这不是一个记录良好的过程,但有关详细信息,请参阅这个相关的 StackOverflow 问题/答案。 如何为 NSAppearance 制作“外观文件”?

于 2015-11-18T18:34:55.463 回答