fields - text field ios 11
Cómo decirle a UITextField que se convierta en el primero en responder mientras está integrado en una UITableViewCell (5)
Tengo un UITextField
que es una subvista de una UITableViewCell
.
Cuando mi vista se cargue, quiero que el campo de texto se convierta en el primero en responder. Tengo un puntero al campo de texto en la celda de la tabla, así que para hacer esto estoy intentando:
[myTextField becomeFirstResponder];
Esto devuelve NO
todo el tiempo, independientemente de cuándo se llame, lo que según los documentos significa que el campo de texto se negó a ser el primero en responder ... ¿Qué estoy haciendo mal?
Editar:
El campo de textfield
responde apropiadamente al ser tocado. Luego aparece el teclado. Es solo cuando se le dice que se becomefirstresponder
en el primer becomefirstresponder
programáticamente que el problema ocurre.
¿Tu propiedad de editing
UITableView está establecida en YES
?
Estaba teniendo el mismo problema con un campo de texto que había agregado como una subvista a una celda de vista de tabla agrupada, pero descubrí una solución después de hurgar un poco.
Suponiendo que haya asignado una etiqueta al campo de texto en su método cellForRowAtIndexPath, puede hacer algo como esto:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
myTextField = (UITextField *)[cell viewWithTag:kMyTextFieldTag];
[myTextField becomeFirstResponder];
}
Llamarlo en el - (void) viewDidLoad funcionaría.
-(void)viewDidLoad{
[super viewDidLoad];
// Do any additional setup after loading the view.
[self.myTextField becomeFirstResponder]
//... any other code you need
}
No estaba logrando que el cursor apareciera cuando el UITextField
se convirtió en el primer respondedor dentro de cellForRowAtIndexPath
. El campo de texto funcionaría bien y muy bien, pero no mostraba el cursor parpadeante dentro del campo. Cuando presionas y mantienes presionada, la ampliación del zoom tampoco mostraría un cursor.
becomeFirstResponder
este extraño problema configurando mi becomeFirstResponder
dentro del método didSelectRowAtIndex
.
Resultó que el campo de texto era nulo cuando estaba tratando de enviarlo a la primera respuesta. El envío de becomeFirstResponder
más adelante en el ciclo de vida funcionó.