如何更改选项卡按钮的颜色和 NSTabView 中的视图本身?

How to change the color of the tab button and the view itself in NSTabView?

我正在开发 OS X 应用程序,我正在使用 NSTabView。我想更改选项卡(按钮)的背景颜色。当前背景为蓝色,(Attribute Inspector -> Appearance = Inherited (Aqua).

视图本身的背景颜色也是如此。我将 NSTabView 子类化,并在这段代码中添加:

 CGContextRef context = (CGContextRef) [[NSGraphicsContext currentContext] graphicsPort];
 CGContextSetRGBFillColor(context, 241.0/255.0, 252.0/255.0, 255.0/255.0, 1.0);
 CGContextFillRect(context, NSRectToCGRect(dirtyRect));

这确实改变了背景颜色,但也用背景颜色覆盖了选项卡...

对于定制 NSTabView 的任何帮助,我们将不胜感激。

对于那些会妄下结论认为这是重复问题的人...请查看类似问题答案中的日期...他们都在 7-8 岁左右...

以下代码是我用于执行此操作的代码,现在使用 iOS 9

[[UITabBar appearance] setBarTintColor:[UIColor colorWithRed:(44/255.00) green:(71/255.00) blue:(95/255.00) alpha:1]]; //TAB BAR TINT COLOR
[[UIView appearanceWhenContainedIn:[UITabBar class], nil] setTintColor:[UIColor whiteColor]];
[[UITabBar appearance] setTintColor:[UIColor colorWithRed:(249/255.00) green:(153/255.00) blue:(44/255.00) alpha:1]];//BUTTON TINT COLOR
[[UITabBar appearance] setTranslucent:NO];
[[UITabBar appearance] setAlpha:1];

结果是这样的

Image from the tab

几个小时后,我认为您无法使用 NSTabView 完成此操作。 文档说你不能再这样做了,NSTabView 将尊重 OS 选择的主题。

这让我想到了 How to draw your own NSTabView tabs?,我相信您已经看到了。但是尽管有文档,SetImage/ForSegment 对我不起作用。

[NSSegmentedControl Colors seems to have found one solution, and SMSegmentView 是另一个,尽管可能存在许可问题。这两种解决方案都是最新的。

希望以上内容对你有用,祝你好运。