J'ai un textField dans un tableViewCell. J'ai récemment remarqué que si je saisis une valeur dans le textBox, puis fais défiler la cellule hors de l'écran, la valeur dans la zone de texte disparaît.iPhone - textField dans un tableViewCell - Le défilement hors écran efface la valeur
J'ai une protection contre cela. S'il n'y a pas de UIKeyboard présent, la tableView ne peut pas défiler assez loin pour avoir à redessiner la cellule. Cependant, certains utilisateurs n'utilisent pas la touche «fait» du clavier pour faire disparaître le clavier, et font plutôt défiler la table, brisant le programme.
Existe-t-il un moyen de stocker immédiatement la chaîne textField dans une variable, ou empêcher le défilement de tableView, ou de faire disparaître le clavier si l'utilisateur essaie de faire défiler le tableauView?
Je n'ai pas de fichier NIB pour cette vue, c'est un tableViewController par programmation, donc je ne peux rien faire dans Interface Builder avec des boutons personnalisés invisibles, comme suggéré dans d'autres questions sur StackOverflow.
J'utilise un bloc de requête case pour ajouter textField à la section 0, ligne 2. TextField est déclaré dans l'en-tête comme un pointeur, donc je peux accéder aux propriétés en utilisant myTextField.text. Est-ce que cela aide? – Justin
Je ne suis pas tout à fait. Voulez-vous dire dans votre méthode cellForRowAtIndexPath que vous avez une déclaration de cas qui détermine si vous êtes à la section 0, ligne 2 et si oui, elle ajoute le champ de texte? Si oui, où appelez-vous [[UITextField alloc] init]? Si c'est également dans la méthode cellForRowAtIndexPath, vous êtes probablement en train de réinitialiser le champ de texte à chaque fois que la ligne défile dans la vue (et que cellForRowAtIndexPath est appelée). Essayez d'initialiser votre champ de texte dans loadView ou la méthode init principale de votre contrôleur. – chrissr