J'ai une application de données de base qui utilise un contrôleur de navigation pour afficher en détail une vue détaillée. Si vous modifiez l'une des lignes de données dans la vue détaillée, vous passez à une vue d'édition pour cette seule ligne. Exemple AppleData CoreDataBooks (sauf CoreDataBooks utilise uniquement un UITextField
seul, pas un qui est une sous-vue de UITableViewCell
comme le mien)!Sous-vue UITextField de UITableViewCell pour devenir le premier répondeur?
La vue d'édition est un UITableviewController
qui crée sa table avec une seule section à une seule ligne et un UITextfield
dans la cellule, par programmation. Ce que je veux faire est quand vous sélectionnez une ligne à éditer et la vue d'édition est poussée sur la pile de nav et la vue d'édition est animée se déplaçant à travers l'écran, je veux que le champ de texte soit choisi comme firstResponder afin que le le clavier est déjà affiché lorsque la vue se déplace sur l'écran pour prendre position. Comme dans l'application Contacts ou dans l'application CoreDataBooks.
J'ai actuellement le code suivant dans mon application qui provoque la vue de charger et vous voyez apparaître le clavier (qui est pas ce que je veux, je veux que le clavier est déjà là)
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[theTextField becomeFirstResponder];
}
Vous ne pouvez pas le mettre dans -viewWillAppear
car le champ de texte n'a pas encore été créé, donc theTextField
est nul. Dans l'application CoreDataBooks où ils obtiennent ce que je veux, ils chargent leur vue à partir d'une plume afin qu'ils utilisent le même code mais dans -viewWillAppear
car le champ de texte a déjà été créé!
Y at-il moyen de contourner cela sans créer une plume, je veux garder l'implémentation programmatique pour permettre une plus grande flexibilité.
Merci beaucoup
J'ai lutté avec cela pendant plus d'un an. Parfois, j'obtiendrais une solution qui fonctionnerait, mais une nouvelle mise à jour d'iOS la casserait. Si ennuyant. C'est la meilleure solution que j'ai vu à ce jour, malgré tout ce que ça fait. –
Merci pour ce super bidouillage mais je ne comprends pas pourquoi nous avons besoin de 'hiddenTextField'? Do 'hiddenTextField' et 'theTextField' pointent vers la même instance UITextField? –
lorsque vous utilisez ce "hack", pouvez-vous voir le curseur? J'ai essayé avec uitableviewcell personnalisé avec une uitextview: le clavier s'ouvre mais il n'y a pas de focus sur uitextview. – Sefran2