如果您需要在应用程序中更改它 类NSAppearance:NSObject,NSCoding描述NSAppearance对象表示指定应用程序中一部分UI元素适用的标准外观的文件。 应用程序可以包含多个外观文件,并且由于NSAppearance符合NSCoding,因此您可以使用Interface Builder将UI元素分配给外观。
我们需要为一个应用程序做这个,因为它想要在 Windows 和 Mac OS X 版本之间拥有非常相似的外观(不要评判我——这是客户想要的)。我们最终做的事情更或多或少是: 创建一个由品牌批准的颜色的 NSDictionary,按使用颜色的方式进行索引(*文本颜色、背景颜色、按钮颜色等)。 在 InterfaceBuilder 检查器中添加一个“用户定义的运行时属性”,告诉每个视图使用哪些颜色。 编写一个 NSView 的类别(以及其他一些 Appkit 视图),实现该属性的 setter,然后调用 -setBackgroundColor: 或任何其他你需要更改默认颜色的 AppKit API。 由于 -setBackgroundColor: 仅适用于具有核心动画层的视图,因此我们最终在我们的 NSView 属性 setter 中添加了代码,以在每个需要非默认背景颜色的视图上调用 -setWantsLayer:YES。
另一种方法是创建一个“外观文件”,您可以加载它来覆盖AppKit控件的视觉外观。这不是一个非常好文档化的过程,但请参阅此相关的StackOverflow问题/答案以获取详细信息。 如何为NSAppearance制作“外观文件”?