2010-04-01 4 views
14

Je suis en train de charger une page HTML qui a un formulaire. Je voudrais pouvoir fermer le clavier lorsque l'utilisateur clique sur GO ou s'il clique sur le bouton SUBMIT de la page HTML.Comment rejeter le clavier sur un UIWebView?

Si l'utilisateur décide qu'il ne veut pas remplir le formulaire, j'ai également besoin d'un moyen de fermer le clavier.

Vous ne savez pas comment procéder.

Répondre

10

Vous pouvez utiliser javascript pour détourner l'attention du champ de texte HTML en utilisant le flou:

document.foo.bar.myinput.blur(); 
+0

aussi, vérifiez cela: http://stackoverflow.com/questions/866419/iphone-keyboard-in-uiwebview-does-not-go-away – dstnbrkr

-11

Je ne suis pas familier avec UIWebView, mais normalement vous rejeter votre clavier comme si ...

[textField resignFirstResponder]; 

En faisant cela, serait rejeté le clavier ...

Pour avoir le clavier doit être fermé lorsque l'utilisateur clique sur le bouton de retour, vous devez implémenter la méthode déléguée.

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    [textField resignFirstResponder]; 
    return YES; 
} 

La documentation d'Apple contient une liste complète de méthodes pour UITextFieldDelegate.

+0

Malheureusement UIWebView n'a pas de méthodes déléguées comme UITextField. D'autres pensées? –

+0

Peut-être que votre question est répondue ici ... http://stackoverflow.com/questions/389825/dismiss-iphone-keyboard – avizzini

+4

Cette approche ne fonctionne tout simplement pas pour UIWebView. Voir ma réponse ci-dessus pour une solution. –

32

Une façon plus concise, sans avoir besoin de savoir quel élément est sélectionné est le suivant:

[webView stringByEvaluatingJavaScriptFromString:@"document.activeElement.blur()"]; 
+1

Cela a fonctionné parfaitement pour moi! Merci Sam –

+0

quand/où appelez-vous cela? – zonabi

28

L'approche javascript est intelligente, mais c'est plus direct:

[webView endEditing:YES]; 
+3

Notez que cela ne fonctionnera pas si vous présentez une vue modale sur iPad avec le style de présentation 'UIModalPresentationFormSheet'. Il s'agit d'un comportement iOS - voir: https://devforums.apple.com/message/166801#166801. – matm

Questions connexes