По умолчанию NSRecessedBezelStyle NSButton визуальная ошибка? - PullRequest
1 голос
/ 29 февраля 2012

У меня есть базовый NSRecessedBezelStyle NSButton, добавленный через IB к NSView. Почему шрифт испорчен в невыбранном состоянии? Это нормально?

image

Как вы можете видеть, при нажатии утопленная кнопка выглядит хорошо, но при нажатии она сплошного черного цвета без тени. Я что-то упускаю где-то действительно очевидное? Я попытался возиться с setAttributedTitle и setAttributedAlternateTitle, но это дало странные результаты с механикой push-on-off.

1 Ответ

1 голос
/ 29 февраля 2012

Это ожидаемое поведение для NSRecessedBezelStyle со стандартным типом «Push On Push Off», обведенным в состояние «Вкл.», Обычным текстом в «ВЫКЛ.», Кроме того, вы можете изменить Тип, чтобы ободок отображался только при наведении курсора, вот код чтобы сделать его серым.

NSMutableDictionary *attrsDictionary = [NSMutableDictionary dictionaryWithCapacity:1];                
[attrsDictionary setObject:[NSColor grayColor] forKey:NSForegroundColorAttributeName];
[attrsDictionary setObject:[NSFont boldSystemFontOfSize:12.0] forKey:NSFontAttributeName];      
NSMutableParagraphStyle *paragraph = [[[NSMutableParagraphStyle alloc] init] autorelease];
[paragraph setAlignment:NSCenterTextAlignment];
[attrsDictionary setObject:paragraph forKey:NSParagraphStyleAttributeName];    
NSAttributedString *str = [[[NSAttributedString alloc] initWithString:@"Button" attributes:attrsDictionary] autorelease];
[button setAttributedTitle:str];
...