2010-12-14 12 views
7

Facebook'un Grafik API OAuth arabirimine giriş yapmak için bir UIWebView oluşturdum. Bu harika çalışıyor, ancak klavyenin açılması için ilk giriş alanına dokunmam gerekiyor. İdeal olarak, form görünür görünmez klavye belirecektir. Bu yüzden ilk form alanı öylesine gibi webViewDidFinishLoad: UIWebViewDelegate yönteminden odağı almak nasıl anlamaya çalışıyorum:Form girişine odaklanmak ve klavyeyi açmak için UIWebView'ı nasıl alabilirim?

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

Ne yazık ki, bu işe yaramaz. Merakla, bu JavaScript'i Firefox JavaScript konsolunda çalıştırdığımda, odağı e-posta alanına taşır. Mac için Safari'de çalıştırdığımda, iOS'ta olduğu gibi hiçbir şey yapmaz. FWIW, alert(document.getElementsByName('email')[0]), bir HTMLInputElement seçtiğini gösteriyor. Peki neden focus() iOS veya Mac OS X'de hiçbir şey yapmıyor?

+3

ile artık mümkün. Bkz. Http://stackoverflow.com/questions/4199225/how-to-get-mobile-browsers-webkit-in-ios-android-to-display-their-soft-keyboar – Soumya

+0

Teşekkürler, bu yardımcı olur. Bunu bir cevap olarak yerleştirdiyseniz, doğru cevap olarak işaretlemeliydim. :-) – theory

cevap

27

Bu Mümkün olduğunu sanmıyorum 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

Yeni ziyaretçi: fold´den sonra JavaScript'e dikkat et :) –

+1

Bu UIWebView yerine WKWebView ile başarılabilir mi? – Fizzix

0

soumya92 öğesinin asıl gönderiye yapılan açıklamasını belirtir, this post şu anda mümkün olmadığını bulur. Ne yazık ki.

+1

, @ Arcank'ın en iyi cevabını tekrar gözden geçirmelisiniz. –

+1

@DirtyHenry Bitti. – theory

İlgili konular