UITextField подать в отставку первого респондента iOS4 - PullRequest
3 голосов
/ 06 июля 2010

У меня есть простой кусок кода, который работает на любой системе, кроме iOS4.Речь идет об отставке первого респондента для UITextField.Все текстовое поле подключено, и вот код для делегата:

- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    [opis resignFirstResponder];
    return YES;
}

Я пробовал это практически всеми возможными способами, пытаясь также вернуть NO, и это не работает.Самое странное, что он работает на всех ОС iphone до 4.0, а также на iPad (протестировано на симуляторах и на реальных устройствах). Кто-нибудь может помочь?

Ответы [ 3 ]

4 голосов
/ 06 июля 2010

Это работало с моим 3GS в iOS4.Вы уверены, что правильно установили делегата UITextField?

- (BOOL) textFieldShouldReturn:(UITextField*)textField {
[textField resignFirstResponder];
return YES;
}
1 голос
/ 07 сентября 2010

Не уверен, если это похоже на ваш случай, но у меня есть UITextField в UIAlertView, и у меня была аналогичная проблема с клавиатурой, не игнорируемой на resignFirstResponder.

Вот мое решение:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    [alert resignFirstResponder];
    return YES;
}

Кажется, что предупреждение стало firstResponder после того, как textfield подал в отставку.

0 голосов
/ 23 мая 2012

Это очень классическая проблема. Я предполагаю, что вы устанавливаете делегата для вашего textField, но вопрос в том, где? Вы устанавливаете в initWithNib ... инициализатор вашего контроллера? Чем это неправильно. Потому что ваше текстовое поле не инициализируется к тому времени. Его инициализация в методе viewDidLoad, поэтому вы должны установить там свой делегат, и он должен работать.

...