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

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


问候,
埃里克

最佳答案

您设置AppleAquaColorVariant首选项:

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


但是,如果希望它在应用程序首次启动时起作用,则必须在绘制任何UI之前,在main中调用NSApplicationMain之前在NSApplication中进行操作,或者可以使用-init的自定义子类进行调用在[super init]之前的方法中

08-18 14:51