Как я могу определить, когда пользователь нажал кнопку «возврат» на клавиатуре при редактировании UITextField? Мне нужно сделать это, чтобы закрыть клавиатуру, когда пользователь нажал кнопку «возврат».
Спасибо.
Как я могу определить, когда пользователь нажал кнопку «возврат» на клавиатуре при редактировании UITextField? Мне нужно сделать это, чтобы закрыть клавиатуру, когда пользователь нажал кнопку «возврат».
Спасибо.
Ответы:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
Не забудьте установить делегата в раскадровке ...
self.yourTextField.delegate = self;
. Также работают даже несколько текстовых полей.
Делегирование не требуется, вот однострочный:
- (void)viewDidLoad {
[textField addTarget:textField
action:@selector(resignFirstResponder)
forControlEvents:UIControlEventEditingDidEndOnExit];
}
К сожалению, вы не можете сделать это напрямую в своей раскадровке (вы не можете связать действия с элементом управления, который их излучает в раскадровке), но вы можете сделать это через промежуточное действие.
UIControlEventEditingDidEndOnExit
событие отправляется только в том случае, если textFieldShouldReturn:
метод делегата возвращает YES (без предварительного отказа от текстового поля).
YES
за этим методом.
SWIFT 3.0
override open func viewDidLoad() {
super.viewDidLoad()
textField.addTarget(self, action: #selector(enterPressed), for: .editingDidEndOnExit)
}
в функции enterPressed () поместите все действия, которые вам нужны
func enterPressed(){
//do something with typed text if needed
textField.resignFirstResponder()
}
- (BOOL)textFieldShouldReturn:(UITextField *)txtField
{
[txtField resignFirstResponder];
return NO;
}
Когда нажимается кнопка ввода, вызывается этот метод делегата. Вы можете захватить кнопку возврата из этого метода делегата.