7

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

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

残念ながら、これは機能しません。不思議なことに、Firefox JavaScriptコンソールでそのJavaScriptを実行すると、フォーカスが電子メールフィールドに移動します。ただし、Safari for Macで実行すると、iOSの場合と同じように何も実行されません。FWIWは、HTMLInputElementを選択することを示していますalert(document.getElementsByName('email')[0]) では、なぜfocus()iOSでもMacOSXでも何もしないのでしょうか。

4

2 に答える 2

28

これはiOS6で可能になりました。

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];
于 2012-10-01T10:04:03.453 に答える
0

soumya92が元の投稿へのコメントで指摘しているように、この投稿では現時点では不可能であることがわかりました。悲しいかな。

于 2011-01-24T01:03:54.647 に答える