我正在开发OS X应用程序,我正在使用NSTabView。我想更改选项卡(按钮)的背景颜色。目前背景为蓝色,(属性检查器 - >外观=继承(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岁了...
答案 0 :(得分:2)
几个小时之后,我认为你不能用NSTabView做到这一点。 文档说你不能再这样做了,NSTabView将尊重操作系统选择的主题。
这导致我How to draw your own NSTabView tabs?,我相信你已经看过了。NSSegmentedControl Colors。但是尽管有文档,SetImage / ForSegment并不适合我。
[SMSegmentView似乎找到了一个解决方案,Limits the maximum execution time是另一个解决方案,尽管可能存在许可问题。这两种解决方案都是最新的。
我希望以上内容对你有用并祝你好运。
答案 1 :(得分:-2)
以下代码是我用来执行此操作的代码,现在正在使用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];
结果是这样的