Потерянный в типах NSButton и альтернативных изображениях
Вопрос
Я бы хотел иметь NSButton
с изображением и альтернативным изображением. Альтернативное изображение должно отображаться во время нажатия кнопки, и я также хотел бы отобразить альтернативное изображение из кода, вызывая что -то вроде [button setSelected:YES]
. Анкет Возможно ли это без обезть с alternateImage
собственность вручную?
Решение
Это возможно без вручного изменения изображения кнопки:
В интерфейсном строительном строителе (редактор XIB/NIB) установить Тип NSButton to "Переключать" и изображение автоматически изменится на альтернативное изображение/заголовок.
Другие советы
Вы можете использовать NSButton
с типом установленного на NSToggleButton
а затем переключиться между image
и alternateImage
с использованием NSOnState
/ NSOffState
состояния NSButton
.
NSButton* theButton = [[NSButton alloc] initWithFrame:....];
theButton.image = .....
theButton.alternateImage = .....
theButton.state = NSOffState; // displays the image
theButton.state = NSOnState; // displays the alternateImage
Самый простой способ - переключаться между двумя изображениями:
@implementation NSButton (Select)
- (void) setSelected: (BOOL) yn
{
NSImage *const tmp = [self image];
[self setImage:[self alternateImage]];
[self setAlternateImage:tmp];
}
@end