Изменить функцию кнопки при нажатии? - PullRequest
0 голосов
/ 27 марта 2012

Я работаю над проектом XCode 4.4, и я нахожусь в точке, где мне нужно сэкономить место в моем GUI.У меня есть две кнопки, каждая из которых обрабатывает метод, одна для включения устройства, а другая для отключения того же устройства.

Мой вопрос заключается в том, как я могу объединить эти две кнопки в одну, чтобы, когда пользователь нажимает кнопку включения, он переключается на кнопку выключения и так далее.Мне нужно иметь возможность изменить значок на кнопке, чтобы отобразить изменение.Я думаю, что это, как правило, довольно просто достичь.Буду признателен за любые советы, заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 11 октября 2012

Вы можете выполнить одно действие, подобное этому.

- (IBAction)btnAction:(id)sender {

     NSButton *btn=(NSButton *)sender;

    [btn setTitle:([btn.title isEqualToString:@"On"] ? @"Off" : @"On")];

    if([btn.title isEqualToString:@"On"]){
        //Switch ON the device
    }else{
        //Switch OFF the device
    }
}
0 голосов
/ 27 марта 2012

Ну, все, что вам нужно сделать, это когда кнопка нажата, обновить кнопку, чтобы отразить текущее состояние. Таким образом, вы измените изображение на кнопке и, возможно, текст. Просто посмотрите на документацию NSButton, что вы можете установить.

Так что вы можете сделать что-то вроде:

- (IBAction)buttonWasPressed:(id)sender {
    if (device.isTurnedOn) {
        [device turnOff];
        [self.button setTitle:@"Turn On"];
    } else {
        [device turnOn];
        [self.button setTitle:@"Turn Off"];
    }
}
...