Я новичок и только учусь. Я видел много примеров кнопок NSSwitch в iOS, но у меня возникли проблемы с тем, чтобы кнопка типа Push On / Push Off работала в MacOS Obj-C.
Для простого примера:
Когда программа загружается, кнопка стиля включения/выключения неактивна (в состоянии по умолчанию). У меня есть некоторые другие кнопки, которые также активны.
Когда тип кнопки включения/выключения нажимается (активен), я хочу отключить другие кнопки и изменить текстовую метку на НЕАКТИВНО.
Когда кнопка снова нажата (неактивна), я хочу включить другие кнопки и снова изменить текстовую метку.
Мой код работает при одном нажатии — то есть я запускаю программу и нажимаю кнопку, а другие кнопки отключаются, а текстовая метка меняется.
Однако второе нажатие не работает. Кнопка останавливается после одного нажатия и не работает как «переключатель». Я знаю, что с помощью кнопок переключения iOS вы можете проверить состояние isOn, но я смог найти только «isEnabled» в MacOS.
Любые примеры состояний кнопок стиля нажатия/отключения для MacOS Objective-C?
- (IBAction)playButton:(id)sender {
if (self.playButton.isEnabled) {
self.textLabel.title = @"INACTIVE";
[self.Visual01Menu setEnabled:NO];
[self.Visual02Menu setEnabled:NO];
[self.Visual03Menu setEnabled:NO];
}
else {
self.textLabel.title = @"ACTIVE";
[self.Visual01Menu setEnabled:YES];
[self.Visual02Menu setEnabled:YES];
[self.Visual03Menu setEnabled:YES];
}
}
То, что вы ищете, называется
state
. Вы можете сравнить, включена кнопка или нет, с помощьюself.playButton.state == NSControlStateValueOn
илиNSControlStateValueOff
.Enabled указывает, можете ли вы вообще взаимодействовать с элементом управления, отключенный элемент управления не будет получать пользовательский ввод.