Как я могу узнать, какая кнопка нажата? Цель С - PullRequest
2 голосов
/ 08 октября 2009

Я выполняю Presence1 в Assignment, который требует от меня создания приложения для нескольких экранов. У меня есть два ViewController, vc1 и vc2. В vc1 у меня есть две кнопки. Я использую один и тот же метод для них, и название у них одинаковое.

Мой вопрос: как я могу узнать, какая кнопка нажата в vc1, когда я перехожу на vc2?

Есть тема, показывающая, что я должен получить позиции (x, y) мыши, когда нажимаю на кнопку, но я думаю, что это не совсем хорошо.

Ответы [ 2 ]

4 голосов
/ 08 октября 2009

Ответ выше будет работать. Если вы не хотите сохранять розетки для кнопок, вы можете назначить им теги в конструкторе интерфейсов. Например, вы назначаете кнопке 1 значение тега 1, а кнопке 2 значение тега 2. Затем в коде

-(void)onButtonClick:(id)sender {
    if(sender.tag == 1) {
        //respond to button 1
    } else if(sender.tag == 2) {
        //respond to button 2
    }
}
1 голос
/ 08 октября 2009

Если у вас есть два NSButton свойства, такие как:

@interface ViewControllerOne : NSViewController
{
    NSButton *goButton;
    NSButton *stopButton;
}

@property(nonatomic, retain) NSButton *goButton;
@property(nonatomic, retain) NSButton *stopButton;

-(void)onButtonClick:(id)sender;

@end

Тогда вы можете сравнить отправителя с указателем кнопки:

-(void)onButtonClick:(id)sender
{
    if (sender == goButton) {
    }

    else if (sender == stopButton) {
    }
}

Это то, что вы ищете?

...