Изменить оттенок кнопки управления окном - PullRequest
0 голосов
/ 25 сентября 2010

Я бы хотел переопределить оттенок управления системой по умолчанию, чтобы мое приложение всегда было NSGraphiteControlTint. Следующий код не работает, хотя. Есть предложения?

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

С уважением, Erik

Ответы [ 2 ]

1 голос
/ 30 января 2011

Вы устанавливаете предпочтение AppleAquaColorVariant:

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

Однако, если вы хотите, чтобы оно работало при первом запуске приложения, вы должны сделать это до рисования любого пользовательского интерфейса, в main до вызова NSApplicationMain, или вы можете использовать пользовательский подкласс NSApplication и вызывать его в методе -init перед [super init]

0 голосов
/ 26 сентября 2010

Не все элементы управления будут соответствовать контрольному оттенку.Это еще более вероятно для элементов управления, которые редко используются приложениями, такими как кнопки окна.

Этот код выглядит правильно.Чтобы проверить это, попробуйте что-нибудь вроде переключателя или кнопки.

Чтобы получить маленькую кнопку, которая выглядит как серая версия кнопки закрытия, я думаю, вам придется использовать кнопку спользовательская графика или собственный подкласс с пользовательским рисунком.

...