2010-04-01 32 views
14

Estoy cargando una página HTML que tiene un formulario. Me gustaría poder descartar el teclado cuando el usuario hace clic en IR o si hace clic en el botón ENVIAR en la página HTML.¿Cómo descartar el teclado en un UIWebView?

Si el usuario decide que no desea completar el formulario, también necesito una forma de cerrar el teclado.

No estoy seguro de cómo hacer esto.

Respuesta

10

Puede usar javascript para alejar la atención del campo de texto HTML usando desenfoque:

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

también, mira esto: http://stackoverflow.com/questions/866419/iphone-keyboard-in-uiwebview-does-not-go-away – dstnbrkr

-11

no estoy tan familiarizado con UIWebView, pero normalmente se descartaría su teclado al igual que ...

[textField resignFirstResponder]; 

Al hacer esto, el teclado sería despedido ...

Tener el teclado debe descartarse cuando, por ejemplo, el usuario hace clic en el botón de retorno, deberá implementar el método de delegado.

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

La documentación de Apple contiene una lista completa de los métodos para UITextFieldDelegate.

+0

Desafortunadamente UIWebView no tiene ningún método de delegado como UITextField. ¿Algún otro pensamiento? –

+0

Quizás su pregunta sea respondida aquí ... http://stackoverflow.com/questions/389825/dismiss-iphone-keyboard – avizzini

+4

Este enfoque simplemente no funciona para UIWebView. Vea mi respuesta más arriba para una solución. –

32

Una forma más concisa sin necesidad de saber qué elemento está seleccionado es el siguiente:

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

¡Eso funcionó perfectamente para mí! Gracias Sam –

+0

cuando/de dónde estás llamando esto? – zonabi

28

El enfoque javascript es inteligente, pero esto es más directo:

[webView endEditing:YES]; 
+3

Tenga en cuenta que esto no funcionará si presenta una vista modal en iPad con el estilo de presentación 'UIModalPresentationFormSheet'. Es el comportamiento de iOS previsto - ver: https://devforums.apple.com/message/166801#166801. – matm

Cuestiones relacionadas