Tengo una aplicación de datos centrales que utiliza un controlador de navegación para obtener una vista detallada y luego, si edita una de las filas de datos en la vista de detalles, se le lleva a una vista de edición para esa línea única, como en Ejemplo de AppData CoreDataBooks (excepto que CoreDataBooks solo usa un UITextField
por sí mismo, ¡no uno que es una subvista de UITableViewCell
como la mía)!¿Subvista UITextField de UITableViewCell para convertirse en el primer respondedor?
La vista de edición es UITableviewController
que crea su tabla con una sola fila de una sola fila y UITextfield
en la celda, programáticamente.
Lo que quiero que suceda es cuando selecciona una fila para editar y la vista de edición se inserta en la pila de navegación y la vista de edición se mueve moviéndose por la pantalla, quiero que el campo de texto se seleccione como firstResponder para que el teclado ya se está mostrando a medida que la vista se mueve por la pantalla para tomar posición. Al igual que en la aplicación Contactos o en la aplicación CoreDataBooks.
que actualmente tiene el siguiente código en mi aplicación que hace que el fin de cargar y entonces ver aparecer el teclado (que no es lo que yo quiero, yo quiero el teclado ya esté allí)
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[theTextField becomeFirstResponder];
}
No puede poner esto en -viewWillAppear
ya que el campo de texto no se ha creado todavía así que theTextField
es nil. En la aplicación CoreDataBooks, donde logran lo que quiero, cargan su vista desde una punta para que usen el mismo código, pero en -viewWillAppear
, ¡ya que el campo de texto ya se ha creado!
¿Hay alguna forma de evitar esto sin crear una semilla, quiero mantener la implementación programática para permitir una mayor flexibilidad.
Muchas Gracias
He luchado con esto por más de un año. A veces obtengo una solución que funcionaría, pero luego una nueva actualización de iOS la rompería. Muy molesto. Esta es la mejor solución que he visto hasta la fecha, a pesar de lo hacky que se siente. –
Gracias por este gran truco, pero no entiendo por qué necesitamos 'hiddenTextField'? ¿Point 'hiddenTextField' y 'theTextField' apuntan a la misma instancia de UITextField? –
cuando usa este "truco", ¿puede ver el cursor? Lo he intentado con una uitableviewcell personalizada con una vista de uitext: el teclado se abre pero no se enfoca en la vista de uitext. – Sefran2