воскресенье, 21 августа 2011 г.

UITextField: делаем, что надо и прячем клавиатуру


Контроллер, в котором вы хотите обрабатывать события UITextField должен поддерживать протокол <UITextFieldDelegate>
Например, у меня есть View, в котором есть UITableView и UITextField. И я в одном контроллере хочу обрабатывать поведение и того и другого. Тогда этот контроллер должен поддерживать соответствующие протоколы.

// AccountOptionsController.h
@interface AccountOptionsController : UIViewController <UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate>

Чтобы спрятать клавиатуру после окончания ввода данных и нажатия кнопки Return, нужно переопределить метод textFieldShouldReturn. Напиример так:

// AccountOptionsController.m
 
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    return YES;
}

Чтобы обработать введенные данные, нужно переопределить метод textFieldDidEndEditing.

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    if (textField == loginField)
    {
        userData.login = textField.text;
    }
    ...
}

Думаю, общая идея ясна, а для дополнительных сведений смотри UITextFieldDelegate Protocol Reference.
С UITableView то же самое. Смотри UITableViewDelegate Protocol Reference и UITableViewDataSource Protocol Reference.

2 комментария:

  1. Ты в одном месте опечатался: UITextFiled
    Поставь себе Orphus для репорта опечаток.
    http://k06a.blogspot.com/2009/05/orphus.html

    ОтветитьУдалить