2010-06-19 5 views
1

J'ai ajouté un champ de texte, et quand j'appuie dessus, le clavier glisse vers le haut. Quelles sont les étapes nécessaires pour que le clavier affiche un "OK" qui fonctionne réellement? Je veux dire ... frapper "OK" ou "Retour" ne fait absolument rien.Comment faire disparaître le clavier?

Y at-il une sorte de KeyboardDelegateProtocol où je dois faire des trucs bizarres comme

-(BOOL)shouldReallyGoAway { 
    return YES;//of course! 
} 

est-il un guide de programmation du clavier 200 pages à lire? N'a pas pu trouver un ...

+1

double possible [Comment masquer le clavier lors de l'édition d'un UITextField] (http://stackoverflow.com/questions/274319/how-do-you-dismiss-the-keyboard-when- edit-a-uitextfield) –

+1

Voir aussi http://stackoverflow.com/questions/741185/easy-way-to-dismiss-keyboard –

Répondre

5

Vous devez gérer le robinet sur le bouton 'OK' (Did End On Exit événement) et renoncer à l'état de premier répondeur pour le champ de texte.

- (IBAction)textFieldDoneEditing:(id)sender { 
[sender resignFirstResponder]; 

}

Vous pouvez gérer quelques autres actions - comme le robinet d'arrière-plan. Vous aurez besoin d'un bouton invisible qui couvrira votre arrière-plan et piège les robinets et un IBOutlet pour votre champ de texte (puisque votre sender sera le bouton, pas le champ de texte)

2

Aucune raison pour un guide de 200 pages, c'est juste là dans l'introduction de l'UITextField que vous utilisez probablement.

Utilisez

[aTextField resignFirstResponder]; 

pour rendre le clavier loin programmation.

En outre, il existe le UITextFieldDelegate avec des méthodes appropriées concernant Return, que vous pouvez utiliser, c'est-à-dire -textFieldShouldReturn:.

par exemple.

- (BOOL) textFieldShouldReturn: (UITextField *) textField

{

[textField resignFirstResponder];

return YES;

}

Questions connexes