2010-04-01 15 views
14

Sto caricando una pagina HTML con un modulo. Vorrei poter chiudere la tastiera quando l'utente fa clic su GO o se fa clic sul pulsante INVIA nella pagina HTML.Come chiudere la tastiera su un UIWebView?

Se l'utente decide che non desidera compilare il modulo, ho anche bisogno di un modo per chiudere la tastiera.

Non so come fare.

risposta

10

È possibile utilizzare javascript per distogliere l'attenzione lontano dal campo di testo HTML usando sfocatura:

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

, controlla anche questo: http://stackoverflow.com/questions/866419/iphone-keyboard-in-uiwebview-does-not-go-away – dstnbrkr

-11

Io non sono così familiarità con UIWebView, ma normalmente si dovrebbe respingere la tastiera in questo modo ...

[textField resignFirstResponder]; 

Così facendo, la tastiera potrebbe essere respinto ...

Avere la tastiera deve essere ignorata quando si dice che l'utente fa clic sul pulsante di ritorno, sarà necessario implementare il metodo delegato.

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

La documentazione di Apple ha un elenco completo di metodi per UITextFieldDelegate.

+0

Sfortunatamente UIWebView non ha alcun metodo delegato come UITextField. Qualche altro pensiero? –

+0

Forse la tua domanda ha una risposta qui ... http://stackoverflow.com/questions/389825/dismiss-iphone-keyboard – avizzini

+4

Questo approccio semplicemente non funziona per UIWebView. Vedi la mia risposta sopra per una soluzione. –

32

Un modo più conciso senza bisogno di sapere quale elemento è stato selezionato è il seguente:

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

Questo ha funzionato perfettamente per me! Grazie Sam –

+0

quando/dove stai chiamando questo? – zonabi

28

L'approccio javascript è intelligente, ma questo è più diretto:

[webView endEditing:YES]; 
+3

Nota che questo non funzionerà se stai presentando una vista modale su iPad con lo stile di presentazione 'UIModalPresentationFormSheet'. È previsto il comportamento di iOS - consultare: https://devforums.apple.com/it/message/166801#166801. – matm

Problemi correlati