2010-12-14 11 views
7

He creado un UIWebView para iniciar sesión en la interfaz OAuth Graph API de Facebook. Esto funciona muy bien, pero tengo que tocar el primer campo de entrada para que aparezca el teclado. Lo ideal es que el teclado aparezca tan pronto como aparezca el formulario. Así que he estado tratando de encontrar la manera de hacer el primer campo de formulario conseguir el enfoque del método webViewDidFinishLoad: UIWebViewDelegate, así:¿Cómo puedo obtener una UIWebView para enfocarme en una entrada de formulario y abrir el teclado?

- (void)webViewDidFinishLoad:(UIWebView *)wv { 
    [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('email')[0].focus();"]; 
} 

Por desgracia, esto no funciona. Curiosamente, cuando ejecuto ese JavaScript en la consola JavaScript de Firefox, mueve el foco al campo de correo electrónico. Cuando lo ejecuto en Safari para Mac, sin embargo, no hace nada, al igual que en iOS. FWIW, alert(document.getElementsByName('email')[0])does muestra que selecciona un HTMLInputElement. Entonces, ¿por qué focus() no hace nada en iOS o Mac OS X?

+3

No creo que es posible. Consulte http://stackoverflow.com/questions/4199225/how-to-get-mobile-browsers-webkit-in-ios-android-to-display-their-soft-keyboar – Soumya

+0

Gracias, eso ayuda. Si lo hubiera colocado como respuesta, lo habría marcado como la respuesta correcta. :-) – theory

Respuesta

27

esto es ahora posible con iOS 6.

UIWebView* webView = <#your webView here#>; 
[webView setKeyboardDisplayRequiresUserAction:NO]; 
[webView loadHTMLString:@"<html><head></head><body><form><input id=\"textField\" /></form><script>document.getElementById(\"textField\").focus();</script></body></html>" 
       baseURL:nil]; 
+0

Nuevos visitantes: preste atención al JavaScript después de la tapa :) –

+1

¿Esto se puede lograr con WKWebView en lugar de con UIWebView? – Fizzix

0

Como soumya92 señala en el comentario de la publicación original, this post considera que no es posible en este momento. Ay.

+1

debería reconsiderar la mejor respuesta para ser @ Arcank's. –

+1

@DirtyHenry Hecho. – theory

Cuestiones relacionadas