He configurado una UITableView con varias UITableViewCell personalizadas que tienen algunas UITextField y UISwitch (basadas en Settings.app). Mi pregunta es, cuando un usuario hace clic en el botón Guardar en la barra de navegación, ¿cuál es la mejor manera de acceder a estos campos de texto y cambiar los controles para guardar sus valores?iPhone Table View: Cómo acceder al campo de texto de TableViewCell personalizado
Respuesta
Mi sugerencia es no utilizar la costumbre UITableViewCell
s. Solía hacerlo a tu manera, pero hay una manera mucho mejor. Utilice la propiedad accessoryView
del UITableViewCell
, a la que puede asignar una vista arbitraria, como UITextField
o UISwitch
. Se muestra exactamente como lo haría en la aplicación de Configuración.
Entonces, cuando se necesita para acceder a ella, sólo tiene que utilizar
NSString *text = ((UITextField *)cell.accessoryView).text;
Sin embargo, hay que tener cuidado sobre la configuración de las células y acceder a sus valores. Si alguna celda sale de la pantalla, se eliminará y no podrá acceder al campo de texto. Lo que quiere hacer al configurar su celular es:
cell.accessoryView = nil; //Make sure any old accessory view isn't there.
if (/*cell needs text field*/) {
UITextField *textField = [[[UITextField alloc] initWithFrame:frame] autorelease];
textField.text = savedValue;
cell.accessoryView = textField;
[textField addTarget:self action:@selector(textChanged:) forControlEvents:UIControlEventValueChanged];
}
...
- (void) textChanged:(UITextField *)source {
self.savedValue = source.text;
}
Si usted no sigue la sugerencia de Ed, usted es probablemente mejor que conserva su vista de texto en la celda de medida y la adición de una propiedad para acceder a la vista.
También puede hacer que sus celdas personalizadas conserven una referencia a su controlador de vista de nivel superior y enviar notificaciones cuando el usuario actualice valores en ellas. Básicamente, copie el patrón delegado utilizado por muchos objetos de la biblioteca en UIKit.
- 1. SQL View o Table
- 2. Django - ¿cómo puedo acceder al campo de formulario desde el interior de un widget personalizado
- 3. Table view cell expandible iOS
- 4. Teclado de iPhone personalizado
- 5. iPhone - textField en tableViewCell - Desplazar pantalla apaga el valor
- 6. iOS Table View Refresh Cell
- 7. C# Cómo acceder al campo estático de una estructura pública
- 8. La tecla de retorno del teclado del iPhone moverá el cursor al siguiente campo de texto
- 9. Drupal 7: Acceso al campo de nodo personalizado en page.tpl.php
- 10. Establecer campo de texto personalizado en la Lista de selección
- 11. iPhone - barra de búsqueda de campo de texto múltiple
- 12. Flip View Iphone
- 13. Agregue un campo personalizado al curso Moodle
- 14. Agregando un campo personalizado al módulo de suscripción de Magento
- 15. Texto de la tecla de retorno del iPhone personalizado
- 16. Cómo acceder al texto de descripción en rspec
- 17. ¿Puedo acceder al llavero en el iPhone?
- 18. Validación en el campo de texto: borde rojo resaltado, iPhone
- 19. validación de iphone para campo de texto agregado en uialertview
- 20. Manera más simple de acceder a RouteData.Values from View
- 21. Entrada de entrada personalizada para UITextField, ¿cómo dirijo la entrada de regreso al campo de texto?
- 22. ¿Cómo clasifico un campo de texto alfabético?
- 23. cómo acceder a querystring en ASP.Net MVC View?
- 24. iphone - cómo agregar texto normal al conjunto de configuraciones
- 25. iPhone Simulator CA certificado personalizado
- 26. Drupal 7 cómo representar el campo personalizado
- 27. Fácil sintaxis 'create table from view' en mysql?
- 28. Sitecore: Cómo acceder al mismo nombre de campo en diferentes secciones
- 29. ¿Cómo se aplica el patrón Model-View-Controller al desarrollo de iPhone?
- 30. Control personalizado iPhone/iOS
¿Qué sucede si tengo más de una celda con un campo de texto (como la vista de agregar contacto en la aplicación de contactos)? ¿Debo agregar un método diferente para cada una de las vistas? – Rodrigo
Aquí se encuentra http://stackoverflow.com/questions/3572377/iphone-how-to-read-the-data-in-uitableview/3572595#3572595 que puede cambiar las etiquetas de los campos de texto, por lo que puedo tener un método y enciéndalo. – Rodrigo
Uso UIControlEventEditingDidEnd. UIControlEventValueChanged no parece ser llamado:? – whatever0010011