Не удается вызвать resignFirstResponder из textFieldDidBeginEditing? (IPhone) - PullRequest
1 голос
/ 19 апреля 2010
[myTextField becomeFirstResponder];
[myTextField resignFirstResonder];

Когда я делаю это -(BOOL)textFieldShouldReturn:(UITextField *)textField, это работает. Но когда я использую тот же код внутри -(void)textFieldDidBeginEditing:(UITextField *)textField, он не работает.

Я уверен, что он звонит textFieldDidBeginEditing. У меня есть NSLog внутри метода, и он вызывается.

Ответы [ 2 ]

7 голосов
/ 26 сентября 2012

Это было много лет назад, но мне нужно что-то идентичное, и этот ответ был в верхней части результатов моего поиска, в итоге я играл и придумал следующее:

[myTextField performSelector:@selector(resignFirstResponder)
                  withObject:nil
                  afterDelay:0
 ];
5 голосов
/ 19 апреля 2010

Перед изменением статуса firstResponder textField выполняет обратный вызов для своего собственного метода -canResignFirstResponder, который возвращает NO, если textField в данный момент находится в сеансе редактирования. Вы можете реализовать -textFieldShouldBeginEditing: метод делегата для возврата NO, если хотите предотвратить начало сеанса редактирования.

...