Подтвердить что ты не робот

События UiTextField

Когда я создаю UITextField внутри Interface Builder, я могу открыть для него вкладку Events, в которой есть события, такие как Value changed, Touch cancel, Touch drag и т.д. Я могу назначить свои собственные методы для каждого из этих событий. Как я могу сделать то же самое, когда я создаю UITextField программно с помощью alloc?

4b9b3361

Ответ 1

Обратитесь к документации Apple для UIControl. После инициализации textField вызовите addTarget:action:forControlEvents:

пример для события касания, заканчивающего сеанс редактирования

[textField addTarget:self action:@selector(handleTouchValueChanged:) forControlEvents: UIControlEventEditingDidEnd]

Ответ 2

Вместо UIControlEventValueChanged вы должны использовать UIControlEventEditingChanged:

[_titleTextField addTarget:self action:@selector(handleTitleValueChanged:) forControlEvents:UIControlEventEditingChanged];

Ответ 3

UIControlEventEditingChanged срабатывает всякий раз, когда пользователь меняет значение [синхронно с типом или клавиатурой] что может привести к дополнительным попаданиям в рутину обработчика данных, если вы сохраняете значения на основе этого события, ожидая, что это будет какое-то окончательное значение из пользовательского ввода...