Цель C IBOutlets - PullRequest
       16

Цель C IBOutlets

2 голосов
/ 07 марта 2009

В тех случаях, когда несколько кнопок вызывают IBOutlet, может ли IBOutlet определить, какая кнопка была нажата?

редактирование:

Все исправлено и подключено. ключевой момент: идентификатор объекта не является тегом отправителя! Тег - это отдельное значение на первой странице атрибутов.

- (IBAction)buttonPressed:(id)sender
{
    switch ( [sender tag] )
    {
        case 109:
            NSLog(@"Button 1");
            break;

        case 108:
            NSLog(@"Button 2");
            break;
    }
}

Ответы [ 3 ]

5 голосов
/ 07 марта 2009

В случаях, когда несколько кнопок вызывают IBOutlet

может быть IBAction?

ели если все

- (IBAction) actionPerformed:(id)sender

так, отправитель ваша кнопка

во-вторых, каждый подкласс UIView имеет поле tag , поэтому вы можете использовать его

int tag = [sender tag];

Вы можете установить тег в IB

2 голосов
/ 07 марта 2009

Обычно вы подключаете событие кнопок (Touch Down) к методу IBAction, который вы хотите вызвать в вашем контроллере.

Прототип метода будет выглядеть так:

-(IBAction) doStuff:(id)sender;

Затем «отправитель» может быть использован для проверки личности объекта, выполняющего вызов, если необходимо.

IBOutlet будет использоваться для связи с UIButton из вашего кода, например, для установки его текста или свойств.

0 голосов
/ 15 июня 2010

Еще лучше, определите метод IBAction для каждой кнопки в вашем пользовательском интерфейсе. Затем вы можете индивидуально связывать кнопки с методами, использующими IB, и избегать жесткого кодирования const целых чисел в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...