2010-06-18 3 views
1

J'ai un UIViewController qui est un UITextFieldDelegate, et je voudrais que le clavier de son champ de texte apparaisse dès que l'utilisateur navigue jusqu'à cette vue, sans avoir à toucher réellement le champ de texte. Il serait également agréable de pouvoir "ignorer" l'ensemble de la vue lorsque le clavier est fermé. Je charge la vue depuis un fichier xib.iPhone: comment activer un champ de texte par programme (et ne pas attendre que l'utilisateur le touche)

Je n'ai pas encore d'ivar dans le code pour UITextField. Je suppose que j'en ai besoin d'un. À ce stade, je compte simplement sur le délégué pour faire apparaître le clavier.

(Je sais que pas un UITextViewDelegate, comme l'étiquette dit, mais je suis nouveau à stackoverflow et ne peut pas créer la balise UITextFieldDelegate correcte.)

Répondre

9

On dirait que vous voulez utiliser dans [textField becomeFirstResponder]viewDidAppear.

+0

Cela a du sens. Mais comment puis-je obtenir textField pour commencer? Cela ne semble pas être une propriété de mon point de vue, et bien que j'ai ajouté un UITextField ivar à ma vue, je ne vois pas comment l'accrocher au champ de texte dans le xib. Ma classe ressemble un peu à ceci: @interface NewSceneViewController: UIViewController { \t IBOutlet UITextField \t * tField; } @property (non atomique, à conserver) UITextField \t \t \t * tField; @end – Paul

+0

Attendez, j'ai compris. Je devais ajouter l'UITextField ivar et en faire une propriété, puis l'affecter lors de son étape @synthesize (@synethesize textField = tField;), puis dans IB je devais attacher le nouvel élément de référence (tField) au propriétaire du fichier. – Paul

+0

Oh, et je devais m'assurer (dans IB) que le propriétaire du fichier était le délégué de la vue et du champ de texte. Sinon, le clavier ne répondra pas au bouton "Terminé". – Paul

Questions connexes