UIWebView中的键盘显示然后隐藏在输入焦点上

Jak*_*ake 8 keyboard uiwebview ipad ios

我有一个页面加载到iPad上的UIWebView(占用屏幕的100%).

当我触摸文本字段时,页面将文本字段定位到正确的位置,键盘开始出现,但随后它转过来然后向下返回并在输入字段上调用模糊.

当我在移动Safari中尝试同一页面时,键盘能够成功部署.

我无法弄清楚键盘成功显示的规则是什么,熬夜=为什么uiwebview与safari有所不同.

我对这个问题的所有研究都没有得出答案.

Jam*_*iel 1

在您的问题中没有发布任何代码的情况下,我推测只有在最终调用之前触摸 HTML 文本字段时,键盘才会向下返回UIWebViewDelegate webViewDidFinishLoad:

要测试这一点,首先将 your 设置UIWebView.delegateUIViewController拥有它的 (或拥有该 的任何对象UIWebView)。然后实现这些委托方法。

- (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);
}
Run Code Online (Sandbox Code Playgroud)

运行您的应用程序并记下调用的次数webViewDidFinishLoad:。(如果您的网页包含多个框架或包含 Google Analytics 等内容,则会被多次调用。)

最后一次调用“webViewDidFinishLoad:”后尝试触摸 HTML 文本字段。键盘是否保持不动?(我也这么认为)。

如果有效,接下来尝试在最终调用“webViewDidFinishLoad:”之前进行触摸。键盘是否会向上移动,然后又向下移动?