Tengo un campo de texto dentro de tableViewCell. Recientemente me di cuenta de que si ingreso un valor en el cuadro de texto y luego desplazo la celda fuera de la pantalla, el valor en el cuadro de texto desaparece.iPhone - textField en tableViewCell - Desplazar pantalla apaga el valor
Tengo una protección contra esto. Si no hay un UIKeyboard presente, el tableView no puede desplazarse lo suficiente para tener que volver a dibujar la celda. Sin embargo, algunos usuarios no usan la tecla "done" en el teclado para hacer que el teclado desaparezca, y en cambio desplazan la tabla hacia arriba, rompiendo el programa.
¿Hay alguna forma de almacenar inmediatamente la cadena textField en una variable, o evitar que la vista de tabla se desplace, o hacer que el teclado desaparezca si el usuario intenta desplazar la vista de tabla?
No tengo un archivo NIB para esta vista, es un tableViewController programático, por lo que no puedo hacer nada en Interface Builder con botones personalizados invisibles, como se sugiere en otras preguntas en StackOverflow.
Uso un bloque de instrucción case para agregar textField a la sección 0, fila 2. El textField se declara en el encabezado como un puntero, por lo que puedo acceder a las propiedades mediante myTextField.text. ¿Esto ayuda? – Justin
No estoy del todo siguiendo. ¿Está diciendo en su método cellForRowAtIndexPath que tiene una declaración de caso que determina si se encuentra en la Sección 0, Fila 2 y, de ser así, agrega el campo de texto? En caso afirmativo, ¿a dónde se llama [[UITextField alloc] init]? Si también está dentro del método cellForRowAtIndexPath, entonces probablemente esté reinicializando el campo de texto cada vez que la fila se desplaza a la vista (y se llama a cellForRowAtIndexPath). Intente inicializar su campo de texto en loadView o el método init principal de su controlador. – chrissr