2010-04-01 47 views
14

Tôi đang tải trang HTML có biểu mẫu. Tôi muốn có thể loại bỏ bàn phím khi người dùng nhấp vào GO hoặc nếu anh ta nhấp vào nút SUBMIT trên trang HTML.Làm cách nào để loại bỏ bàn phím trên UIWebView?

Nếu người dùng quyết định không muốn điền vào biểu mẫu, tôi cũng cần có cách để loại bỏ bàn phím.

Không chắc chắn cách thực hiện việc này.

Trả lời

10

Bạn có thể sử dụng javascript để mất trọng tâm ra khỏi lĩnh vực văn bản HTML sử dụng làm mờ:

document.foo.bar.myinput.blur(); 
+0

cũng, hãy kiểm tra điều này: http://stackoverflow.com/questions/866419/iphone-keyboard-in-uiwebview-does-not-go-away – dstnbrkr

-11

Tôi không quá quen thuộc với UIWebView, nhưng thông thường bạn sẽ bỏ bàn phím của bạn như vậy ...

[textField resignFirstResponder]; 

Bằng cách đó, bàn phím sẽ bị miễn nhiệm ...

Để có bàn phím bị loại bỏ khi người dùng nhấp vào nút trả về, bạn sẽ cần triển khai phương thức ủy nhiệm.

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    [textField resignFirstResponder]; 
    return YES; 
} 

Tài liệu của Apple có danh sách đầy đủ các phương pháp cho UITextFieldDelegate.

+0

Thật không may UIWebView không có bất kỳ phương thức đại biểu nào như UITextField. Bất kỳ suy nghĩ nào khác? –

+0

Có lẽ câu hỏi của bạn được trả lời ở đây ... http://stackoverflow.com/questions/389825/dismiss-iphone-keyboard – avizzini

+4

Cách tiếp cận này chỉ đơn giản là không làm việc cho UIWebView. Xem câu trả lời của tôi ở trên cho một giải pháp. –

32

Một cách ngắn gọn hơn mà không cần phải biết những gì phần tử được chọn như sau:

[webView stringByEvaluatingJavaScriptFromString:@"document.activeElement.blur()"]; 
+1

Điều đó làm việc hoàn hảo cho tôi! Cảm ơn Sam –

+0

khi nào/bạn đang gọi điện thoại này từ đâu? – zonabi

28

Cách tiếp cận javascript là thông minh, nhưng điều này trực tiếp hơn:

[webView endEditing:YES]; 
+3

Lưu ý rằng thao tác này sẽ không hoạt động nếu bạn đang trình bày chế độ xem phương thức trên iPad với kiểu trình bày 'UIModalPresentationFormSheet'. Đó là hành vi iOS dự định - xem: https://devforums.apple.com/message/166801#166801. – matm

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