web-dev-qa-db-fra.com

Comment définir le focus sur un champ de texte dans l'iphone?

Comment définissez-vous par programme le focus sur un champ de texte dans l'iPhone à la suite d'une pression sur le champ de texte?

43
Ravi kumar

Faites simplement le textField en premier, cela fera également apparaître le clavier:

[self.textField becomeFirstResponder];

Et juste un exemple de code plus typique qui peut aider quelqu'un,

dans votre storyboard, cliquez sur l'un des champs de texte et définissez les points de vente-délégué comme classe en question. Dans cette classe, dans le fichier .h, assurez-vous que vous déclarez qu'il s'agit d'un UITextFieldDelegate

@interface Login : UIViewController <UITextFieldDelegate>

Ensuite, dans le fichier .m, vous pourriez avoir ceci par exemple ...

-(BOOL)textFieldShouldReturn:(UITextField *)textField
 {
 if ( textField == self.loginEmail ) { [self.loginPassword becomeFirstResponder]; }
 if ( textField == self.loginPassword ) { [self yourLoginRoutine]; return YES; }
 return YES;
 }

Lorsqu'un utilisateur clique sur le bouton "Suivant" du clavier virtuel - dans le champ "e-mail" - il vous déplacera correctement dans le champ du mot de passe. Lorsqu'un utilisateur clique sur le bouton "Suivant" du clavier virtuel - dans le champ "mot de passe" - il appellera correctement votre yourLoginRoutine.

(Sur le storyboard, dans l'inspecteur d'attributs, notez que vous pouvez sélectionner le texte que vous voulez sur la touche Retour ... ici "Suivant" fonctionnerait bien sur le champ de courrier électronique et "Terminé" fonctionnerait bien sur le champ de mot de passe.)

J'espère que ça aide!

66
rckoenes

Ajoutez Délégué au TextField. Vous pouvez suivre le processus détaillé dans cet article: http://www.roseindia.net/tutorial/iphone/examples/iphone-AddTwoTextField.html

Pour changer de focus à la volée:

[yourTextField becomeFirstResponder];
22
EXC_BAD_ACCESS