0

我正在开发 OS X 应用程序,并且正在使用 NSTabView。我想更改选项卡(按钮)的背景颜色。当前背景为蓝色,(属性检查器 -> 外观 = 继承(水色)。

视图本身的背景颜色也是如此。我将 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 岁左右...

4

2 回答 2

2

几个小时后,我认为你不能用 NSTabView 做到这一点。文档说你不能再这样做了,NSTabView 将尊重操作系统选择的主题。

这导致我如何绘制自己的 NSTabView 选项卡?,我相信你已经看到了。但是尽管有文档,但 SetImage/ForSegment 对我不起作用。

[ NSSegmentedControl Colors似乎找到了一种解决方案,而SMSegmentView是另一种解决方案,尽管可能存在许可问题。这两种解决方案都是较新的。

我希望以上内容对您有用并祝您好运。

于 2015-10-31T20:09:40.037 回答
-3

以下代码是我用来执行此操作的代码,现在使用 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];

结果是这样的

选项卡中的图像

于 2015-10-30T13:33:14.853 回答