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

时间:2011-01-14 22:43:31

标签: ipad ios uiwebview keyboard

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

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

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

我无法弄清楚键盘成功显示和熬夜的规则是什么?为什么uiwebview与safari不同。

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

1 个答案:

答案 0 :(得分:1)

如果您的问题中没有发布任何代码,我推测只有在最后一次调用UIWebViewDelegate webViewDidFinishLoad:

之前触摸了HTML文本字段时,键盘才会退回

要对此进行测试,请先将UIWebView.delegate设置为拥有它的UIViewController(或拥有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);
}

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

在最后一次调用`webViewDidFinishLoad:'之后尝试触摸HTML文本字段。键盘是否熬夜? (我会这么认为)。

如果可行,接下来尝试在最后调用`webViewDidFinishLoad:'之前进行操作。键盘是否会生成动画然后退回?