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?
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
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