Nếu không có bất kỳ mã đăng trong câu hỏi của bạn, tôi đang suy đoán rằng bàn phím sẽ trở lại xuống chỉ xảy ra khi các lĩnh vực văn bản HTML được chạm trước khi cuộc gọi cuối cùng để UIWebViewDelegate webViewDidFinishLoad:
Để kiểm tra điều này, đầu tiên thiết lập UIWebView.delegate
của bạn đến số UIViewController
sở hữu nó (hoặc bất kỳ đối tượng nào sở hữu số UIWebView
). Sau đó, thực hiện các phương thức ủy nhiệm này.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *urlString = request.URL.absoluteString;
NSLog(@"%@ with URL = %@", NSStringFromSelector(_cmd), urlString);
return YES;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *urlString = webView.request.URL.absoluteString;
NSLog(@"%@ with URL = %@", NSStringFromSelector(_cmd), urlString);
}
Chạy ứng dụng của bạn và ghi chú số lần webViewDidFinishLoad:
được gọi. (Nếu trang web của bạn chứa nhiều khung hoặc bao gồm những thứ như Google Analytics, nó sẽ được gọi nhiều lần.)
Hãy thử chạm vào trường văn bản HTML sau khi `webViewDidFinishLoad: 'được gọi cho lần cuối cùng. Bàn phím có ở lại không? (Tôi sẽ nghĩ như vậy).
Nếu điều đó hoạt động, tiếp theo hãy thử liên lạc trước cuộc gọi cuối cùng với `webViewDidFinishLoad: '. Bàn phím có hoạt động không nhưng sau đó quay lại?
Nguồn
2014-05-17 20:19:23
Bạn có đang xử lý chế độ xem thay đổi kích thước chính xác khi bàn phím xuất hiện không? Nếu không, điều này có thể là nguyên nhân của hành vi không mong muốn. – Paul
Tôi làm cách nào để chỉnh kích thước chính xác? Tôi đã xử lý các sự kiện bàn phím rồi. Tôi chỉ không biết điều kiện nào mà bàn phím yêu cầu phải ở lại ... – Jake
Có vẻ như bạn đang thay đổi/từ chối trình phát hiện linh hoạt trong một trong các phương thức ủy quyền webView của bạn. Bạn có thể vui lòng hiển thị mã cho những đại biểu đó không? –