Pergunta

Como posso detectar quando um usuário pressionou "retorno" botão do teclado durante a edição UITextField? Eu preciso fazer isso de forma a dispensar o teclado quando o usuário pressionou o botão "retorno".

Graças.

Foi útil?

Solução

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return NO;
}

Não se esqueça de definir o delegado no storyboard ...

enter descrição da imagem aqui

Outras dicas

Delegação não é necessário, aqui está uma frase:

- (void)viewDidLoad {
    [textField addTarget:textField
                  action:@selector(resignFirstResponder)
        forControlEvents:UIControlEventEditingDidEndOnExit];
}

Infelizmente você não pode fazer diretamente este em sua Storyboard (você não pode ações ligar no comando que emite-los no Storyboard), mas você pode fazê-lo através de uma ação intermediária.

SWIFT 3.0

override open func viewDidLoad() {
    super.viewDidLoad()    
    textField.addTarget(self, action: #selector(enterPressed), for: .editingDidEndOnExit)
}
função

em enterPressed () colocar todos os comportamentos que você está depois

func enterPressed(){
    //do something with typed text if needed
    textField.resignFirstResponder()
}

Agora você pode fazer isso é storyboard usando o evento enviado 'acabou No Exit'.

Em sua subclasse controlador de vista:

 @IBAction func textFieldDidEndOnExit(textField: UITextField) {
    textField.resignFirstResponder()
}

Em seu storyboard para o campo de texto desejado:

 enter descrição da imagem aqui

Versão Swift usando UITextFieldDelegate:

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    resignFirstResponder()
    return false
}
- (BOOL)textFieldShouldReturn:(UITextField *)txtField 
{
[txtField resignFirstResponder];
return NO;
}

Quando entrar botão é clicado, em seguida, esse método delegado é called.you pode capturar botão de retorno deste método delegado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top