更改窗口按钮的控制色调

时间:2010-09-25 09:32:07

标签: objective-c cocoa appkit

我想将我的应用的默认系统控制色调覆盖为NSGraphiteControlTint。以下代码似乎不起作用。有什么建议吗?

NSButton *button = [window standardWindowButton:NSWindowCloseButton];
[[button cell] setControlTint:NSGraphiteControlTint];

此致 埃里克

2 个答案:

答案 0 :(得分:1)

您设置了AppleAquaColorVariant首选项:

[[NSUserDefaults standardUserDefaults] setInteger:NSGraphiteControlTint forKey:@"AppleAquaColorVariant"];

但是,如果您希望它在第一次启动时运行,您必须在绘制任何UI之前执行此操作,在main中调用NSApplicationMain之前,或者您可以使用自定义子类NSApplication,并在-init

之前使用[super init]方法调用它

答案 1 :(得分:0)

并非所有控件都会尊重控制色调。对于像窗口按钮这样的应用程序很少使用的控件,这更有可能。

该代码看起来正确。要验证它,请尝试点击单选按钮或按钮。

要获得一个看起来像关闭按钮的灰色版本的小按钮,我认为你将不得不使用带有自定义图形的按钮或带有自定义绘图的子类。