2010-12-14 42 views
7

Tôi đã tạo một UIWebView để đăng nhập vào giao diện API OAuth của Graph API của Facebook. Điều này hoạt động rất tốt, nhưng tôi phải nhấn vào trường nhập đầu tiên để bàn phím bật lên. Lý tưởng nhất là bàn phím sẽ xuất hiện ngay sau khi biểu mẫu xuất hiện. Vì vậy, tôi đã cố gắng để tìm ra cách để làm cho các lĩnh vực hình thức đầu tiên được sự tập trung từ phương pháp webViewDidFinishLoad: UIWebViewDelegate, như vậy:Làm cách nào để có một UIWebView tập trung vào đầu vào biểu mẫu và hiển thị bàn phím?

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

Alas, điều này không làm việc. Thật kỳ lạ, khi tôi chạy JavaScript đó trong bảng điều khiển JavaScript của Firefox, nó sẽ di chuyển tiêu điểm đến trường email. Khi tôi chạy nó trong Safari cho Mac, tuy nhiên, nó không có gì, giống như trên iOS. FWIW, alert(document.getElementsByName('email')[0])hiện cho thấy rằng nó chọn HTMLInputElement. Vậy tại sao focus() không làm gì trong iOS hoặc Mac OS X?

+3

Tôi không nghĩ rằng đó là có thể. Xem http://stackoverflow.com/questions/4199225/how-to-get-mobile-browsers-webkit-in-ios-android-to-display-their-soft-keyboar – Soumya

+0

Cảm ơn, điều đó giúp ích. Nếu bạn đặt câu trả lời đó làm câu trả lời, tôi sẽ đánh dấu nó là câu trả lời đúng. :-) – theory

Trả lời

27

này bây giờ có thể với 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

Khách truy cập mới: chú ý đến JavaScript sau khi gấp :) –

+1

Điều này có thể đạt được với WKWebView thay vì UIWebView không? – Fizzix

0

soumya92 chỉ ra trong nhận xét cho bài đăng gốc, this post thấy rằng không thể thực hiện tại thời điểm này. Than ôi.

+1

bạn nên xem xét lại câu trả lời đúng nhất là @ Arcank's. –

+1

@DirtyHenry Xong. – theory

Các vấn đề liên quan