Como posso detectar quando um usuário pressionou o botão "retornar" do teclado durante a edição de UITextField? Preciso fazer isso para dispensar o teclado quando o usuário pressionou o botão "Voltar".
Obrigado.
Como posso detectar quando um usuário pressionou o botão "retornar" do teclado durante a edição de UITextField? Preciso fazer isso para dispensar o teclado quando o usuário pressionou o botão "Voltar".
Obrigado.
Respostas:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
Não se esqueça de definir o delegado no storyboard ...
self.yourTextField.delegate = self;
. Mesmo vários campos de texto também funcionam.
A delegação não é necessária, aqui está uma linha:
- (void)viewDidLoad {
[textField addTarget:textField
action:@selector(resignFirstResponder)
forControlEvents:UIControlEventEditingDidEndOnExit];
}
Infelizmente, você não pode fazer isso diretamente em seu Storyboard (você não pode conectar ações ao controle que as emite no Storyboard), mas você pode fazer isso por meio de uma ação intermediária.
UIControlEventEditingDidEndOnExit
evento é enviado apenas se o textFieldShouldReturn:
método delegate retornar YES (sem antes cancelar o campo de texto).
YES
para este método.
SWIFT 3.0
override open func viewDidLoad() {
super.viewDidLoad()
textField.addTarget(self, action: #selector(enterPressed), for: .editingDidEndOnExit)
}
na função enterPressed () coloque todos os comportamentos que você procura
func enterPressed(){
//do something with typed text if needed
textField.resignFirstResponder()
}
Agora você pode fazer isso em um storyboard usando o evento enviado 'Did End On Exit'.
Em sua subclasse de controlador de visualização:
@IBAction func textFieldDidEndOnExit(textField: UITextField) {
textField.resignFirstResponder()
}
Em seu storyboard para o campo de texto desejado:
- (BOOL)textFieldShouldReturn:(UITextField *)txtField
{
[txtField resignFirstResponder];
return NO;
}
Quando o botão Enter é clicado, este método delegado é chamado. Você pode capturar o botão de retorno deste método delegado.