как создать или назначить делегата? - PullRequest
3 голосов
/ 21 апреля 2010

Как мне сделать делегата? У меня есть класс под названием CustomSign. Класс имеет представление, связанное с ним. Вид имеет 2 элемента. Текстовое поле и uilabel. Я хочу скопировать данные текстовых полей в uilabel при нажатии кнопки «Готово».

Вот мой код в CustomSign.m Я не знаю, как сделать это делегатом.

-(void)textFieldDidEndEditing:(UITextField *)textField {
    [textField resignFirstResponder];
    label.text = textField.text;
}

1 Ответ

7 голосов
/ 21 апреля 2010

В вашем файле CustomSign.m должна быть ссылка на текстовое поле. Это может быть выход, к которому вы затем подключаетесь в Интерфейсном Разработчике, или вы можете сохранить ссылку на текстовое поле напрямую, если вы создаете его программно.

Затем вы вызываете метод -setDelegate: текстового поля для назначения вашего объекта в качестве делегата:

//in CustomSign.m
- (void)awakeFromNib
{
    //assume textField is an ivar that is connected to the textfield in IB
    [textField setDelegate:self];
}

Вы также можете установить делегат текстового поля в Интерфейсном Разработчике путем перетаскивания элемента управления из текстового поля на свой объект.

Обратите внимание, что вам не следует звонить -resignFirstResponder самостоятельно.

...