Tengo UITextField y UIButton. Quiero becomeFirstResponder mi TextField después de cada acción de Intro (mi acción de Botón), ¡pero no funciona! aquí está mi código:

[_textfield becomeFirstResponder];

[_textfield addTarget:self action:@selector(backAction:) 
forControlEvents:UIControlEventEditingDidEndOnExit];

[_back addTarget:self action:@selector(backAction:) 
forControlEvents:UIControlEventTouchUpInside];

- (void)backAction:(id)sender
{
    [users addObject:_textfield.text];
    _textfield.text = nil;
    [_textfield becomeFirstResponder];
}
0
SaMi GiMiX 20 abr. 2017 a las 12:08

2 respuestas

La mejor respuesta

En lugar de "acción inversa:" agregue una acción separada para el campo de texto.

[_textfield addTarget:self action:@selector(dismiss) forControlEvents:UIControlEventEditingDidEndOnExit];

Y en este método dirigido,

- (void)dismiss {
[self performSelector:@selector(backAction:) withObject:nil afterDelay:0]}

Parece estar funcionando cuando lo intenté.

Al hacer clic en regresar, la edición se completa y el teclado renuncia. Pero 'backaction:' se activará antes de eso y el teclado desaparecerá. Espero que esto ayude.

1
QUserS 20 abr. 2017 a las 12:25

Por favor, compruebe que ha dado delegado de campo de texto para ver el controlador o agregar código

_textfiled.delegate = self
0
Vinay Kumar 20 abr. 2017 a las 09:22