UiTextField и resignFirstResponder - PullRequest
       25

UiTextField и resignFirstResponder

4 голосов
/ 26 марта 2009

У меня странные настройки.

У меня есть View с именем View1 и ViewController call viewController1

in IB, View1 является потомком ViewController1 .

Внутри View1 , я создал с использованием кода UITextField и добавил в качестве подпредставления.

По моему Viewcontroller, у меня viewController1 : UIViewController <UITextFieldDelegate>

Теперь .. Я хотел бы уйти в отставку клавиатуры, когда текстовое поле в View1 получает кнопку "Готово" на клавиатуре, поэтому у меня есть

- (BOOL)textFieldShouldReturn:(UITextField *)TEXTFIELD {
    [TEXTFIELD resignFirstResponder];
}

Теперь вопрос в том, как мне установить соединение между TEXTFIELD (определенным в моем viewcontroller) и текстовым полем, определенным в моем View?

Нужно ли что-то делать в interfaceBuilder?

может быть, я здесь совсем ...

Некоторые советы очень ценятся

Ответы [ 2 ]

14 голосов
/ 26 марта 2009

Кендалл прав. Вам необходимо установить ваш viewController1 в качестве делегата вашего текстового поля.

В вашем комментарии выше, я думаю, вы неправильно понимаете метод textFieldShouldReturn. UITextField * передается в качестве параметра этому методу, чтобы делегат мог видеть, какое поле хочет вернуть, и решать, разрешать ли ему это. В вашем случае у вас есть только одно текстовое поле, так что просто оставьте первого респондента и верните ДА (мой код ниже).

Попробуйте установить точку останова в этой функции textFieldShouldReturn. Это называется?

- (BOOL)textFieldShouldReturn:(UITextField*)aTextField
{
    [aTextField resignFirstResponder];
    return YES;
}
7 голосов
/ 26 марта 2009

Подключите свойство делегата текстового поля к вашему контроллеру представления в IB (должен быть владельцем файла для этого представления). Также отметьте в заголовке контроллера представления, что вы соответствуете протоколу.

Или вы можете просто установить для свойства texfield.delegate значение self в методе viewDidLoad контроллера представления.

...