Потерянный в типах NSButton и альтернативных изображениях

StackOverflow https://stackoverflow.com/questions/5326337

  •  25-10-2019
  •  | 
  •  

Вопрос

Я бы хотел иметь NSButton с изображением и альтернативным изображением. Альтернативное изображение должно отображаться во время нажатия кнопки, и я также хотел бы отобразить альтернативное изображение из кода, вызывая что -то вроде [button setSelected:YES]. Анкет Возможно ли это без обезть с alternateImage собственность вручную?

Это было полезно?

Решение

Это возможно без вручного изменения изображения кнопки:

В интерфейсном строительном строителе (редактор XIB/NIB) установить Тип NSButton to "Переключать" и изображение автоматически изменится на альтернативное изображение/заголовок.

Set the type to Toggle to use the alternate image

Другие советы

Вы можете использовать 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top