2010-12-14 6 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

이것은 나는 그것이 가능하다고 생각하지 않습니다 아이폰 OS 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