Потерянные в NSButton типах и альтернативных изображениях - PullRequest
6 голосов
/ 16 марта 2011

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

Ответы [ 3 ]

15 голосов
/ 27 мая 2014

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

В Интерфейсном Разработчике (xib / nib Editor) установите Тип NSButton на «Переключить» , и изображение автоматически изменится на альтернативное изображение / название.

Set the type to Toggle to use the alternate image

4 голосов
/ 30 сентября 2014

Вы можете использовать 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
3 голосов
/ 16 марта 2011

Самый простой способ - переключаться между двумя изображениями:

@implementation NSButton (Select)

- (void) setSelected: (BOOL) yn
{
    NSImage *const tmp = [self image];
    [self setImage:[self alternateImage]];
    [self setAlternateImage:tmp];
}

@end
...