2010-12-14 4 views
7

Ho creato un UIWebView per l'accesso all'interfaccia OAuth dell'API Graph di Facebook. Funziona alla grande, ma devo toccare il primo campo di input per far apparire la tastiera. Idealmente, la tastiera apparirà non appena appare la forma. Così ho cercato di capire come rendere il primo campo modulo di ottenere l'attenzione dal metodo webViewDidFinishLoad: UIWebViewDelegate, in questo modo:Come posso ottenere una UIWebView per mettere a fuoco l'input di un modulo e far apparire la tastiera?

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

Ahimè, questo non funziona. Curiosamente, quando eseguo quel JavaScript nella console JavaScript di Firefox, sposta l'attenzione sul campo dell'email. Quando lo eseguo in Safari per Mac, tuttavia, non fa nulla, proprio come su iOS. FWIW, alert(document.getElementsByName('email')[0])fa mostra che seleziona un HTMLInputElement. Quindi, perché lo focus() non fa nulla in iOS o Mac OS X?

+3

Non credo sia possibile. Vedi http://stackoverflow.com/questions/4199225/how-to-get-mobile-browsers-webkit-in-ios-android-to-display-their-soft-keyboar – Soumya

+0

Grazie, questo aiuta. Se lo avessi inserito come risposta, l'avrei contrassegnato come la risposta corretta. :-) – theory

risposta

27

questo è ora possibile 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

Nuovi visitatori: prestare attenzione al JavaScript dopo la piega :) –

+1

È possibile ciò con WKWebView invece che con UIWebView? – Fizzix

0

As soumya92 indica nel commento al post originale, this post rileva che non è possibile in questo momento. Ahimè.

+1

dovresti riconsiderare la migliore risposta per essere @ Arcank. –

+1

@DirtyHenry Fatto. – theory

Problemi correlati