Метод textfieldDidEndEditing не запускается, когда я заканчиваю редактирование и выбираю другой элемент управления, кроме текстового поля - PullRequest
5 голосов
/ 23 августа 2011

Я использую в своем программно сделанном uitextfield

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

чтобы поймать событие, которое мое текстовое поле завершило редактирование. В событиях, когда я меняю фокус с одного текстового поля на другое или нажимаю return, событие запускается, но если я нахожусь в текстовом поле и нажимаю другой uicontrol, как кнопку отсюда этот метод не запускается. что здесь не так ... мне нужно отлавливать каждое событие, когда пользователь завершил редактирование текстового поля. Я тоже пытался с textfielddidendediting, но это событие пропущено .. Как преодолеть это

Ответы [ 3 ]

7 голосов
/ 23 августа 2011

при нажатии на кнопку. Написать код в методе - (IBAction)

[yourTextField resignFirstResponder]; тогда этот метод будет вызван.

 - (IBAction) yourBtnClicked:(id)sender
 {
   [textField resignFirstResponder];
 }
1 голос
/ 23 августа 2011

В данном случае происходит то, что когда вы редактируете текстовое поле, а затем нажимаете кнопку UIB или что-то еще, методы делегирования для поля UIText не будут вызываться.

Для этого вам нужно написать код для этого текстового поля внутри кода для этой кнопки.

Все, что вам нужно,

   //inside your btn action
   - (IBAction) btnPressed : (id) sender
   {
        [self textFieldDidEndEditing:myTextField];
        //remaining code goes here....
   }
0 голосов
/ 19 марта 2018

Вероятно, проблема заключается в том, что DidEndEditing не сработает, поскольку ваше текстовое поле остается первым респондентом даже после нажатия кнопки.

Вы можете установить первого респондента при нажатии кнопки, а затем отпустить первого респондента. Затем, независимо от того, какое текстовое поле было отредактировано перед нажатием кнопки, сработает событие DidEndEditing.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...