2010-12-14 24 views
7

FacebookのGraph API OAuthインターフェイスにログインするためのUIWebViewを作成しました。これは素晴らしいですが、キーボードをポップアップするために最初の入力フィールドをタップする必要があります。理想的には、フォームが表示されるとすぐにキーボードが表示されます。だから私はwebViewDidFinishLoad: UIWebViewDelegateメソッドからフォーカスを取得する最初のフォームフィールドを作成する方法を理解しようとしてきたので、同じよう:UIWebViewをフォーム入力にフォーカスしてキーボードを表示させるにはどうすればよいですか?

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

ああ、これは動作しません。不思議なことに、私はFirefox JavaScriptコンソールでそのJavaScriptを実行すると、電子メールフィールドにフォーカスを移します。しかし、Mac用のSafariで実行すると、iOSと同じように、何もしません。 FWIW alert(document.getElementsByName('email')[0])は、HTMLInputElementを選択したことを示します。だから、なぜfocus()はiOSやMac OS Xでも何もしないのですか?

+3

で可能です。 http://stackoverflow.com/questions/4199225/how-to-get-mobile-browsers-webkit-in-ios-android-to-display-their-soft-keyboar – Soumya

+0

ありがとう、それは役立ちます。あなたが答えとしてそれを置いたなら、私は正しい答えとしてそれをマークしていたでしょう。 :-) – theory

答えて

27

これは、私はそれが可能だとは思わない今の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

新しい訪問者:折りたたみ後のJavaScriptに注意を払う:) –

+1

これはUIWebViewではなくWKWebViewで達成可能ですか? – Fizzix

0

soumya92は、元の投稿へのコメントに指摘すると、this postは現時点では不可能であることがわかりました。ああ。

+1

あなたは最高の答えを@ Arcank'sに再考するべきです。 –

+1

@DirtyHenry完了。 – theory

関連する問題