Программирование iOS: UITextField, прослушивание события расфокусировки

Как я могу прослушать событие расфокусировки в UITextFiekd?

Я бы создал своего рода обработчик, который активируется, когда мое текстовое поле теряет фокус. Например, если я нажму на другую часть приложения, это прослушивание автоматически зарегистрирует текст внутри UITextField.

Спасибо.


person Lorenzo B    schedule 07.04.2011    source источник


Ответы (3)


Существует UITextFieldTextDidEndEditingNotification, когда текстовое поле уходит в отставку в качестве первого респондента. Вы также можете использовать делегировать метод textFieldDidEndEditing:.

person Nick Weaver    schedule 07.04.2011

Вы можете добавить собственное уведомление в одиночный элемент центра уведомлений по умолчанию.

Начните с настройки метода в ваших текстовых полях, который контролирует контроллер представления, который содержит код, который вы хотите выполнить, когда ваше текстовое поле выходит из поля зрения:

-(void)textFieldLostFocus{
    //do some work here... 
}

Затем добавьте наблюдателя уведомлений в центр уведомлений по умолчанию. (вы можете поместить это в viewDidLoad)

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldLostFocus) 
                                                 name:@"TextFieldDidLoseFocus" object:nil];

А затем внутри контроллера представления superviews поля UITextfield добавьте следующее:

-(void)viewDidDisappear:(BOOL)animated{
    [[NSNotificationCenter defaultCenter] postNotificationName:@"TextFieldDidLoseFocus" object:self userInfo:nil];
}

Когда представление выходит из поля зрения, ваш пользовательский метод будет вызываться центром уведомлений.

person Sabobin    schedule 07.04.2011

Два шага. Сначала определите делегата. Во-вторых, реализуйте метод делегата textFieldDidEndEditing:. Этот селектор вызывается, когда

текстовое поле отказывается от своего статуса первого респондента.

Это iOS-говорить для потери фокуса. Документация: здесь.

person Stephen Darlington    schedule 07.04.2011