键盘调整大小的UIWebView问题



我们正在构建一个iPhone应用程序,基本上是我们网站移动版本的包装器。在聊天页面中选择TextArea时,应调整WebView的大小以适合键盘上方的区域。

但是,在更改keyboardWillShow中UIWebView的框架时,TextArea的焦点被取消。在显示键盘时再次敲击文本方面时,它确实会聚焦。

我还尝试更改界限而不是帧。那时,文本方面确实得到了焦点,但是它以某种方式将其固定在原始边界的底部而不是顶部。有人有这个问题的经验吗?

编辑:我现在通过更改键盘窗口上的WebView大小而不是键盘WillShow来解决第一个问题。但是,看来该站点无法正确更新调整大小,并且该站点的标题没有在视图中。我将下面的代码编辑为当前的情况。

- (void)updateBounds {
    CGRect appFrame = [UIScreen mainScreen].applicationFrame, newFrame;
    if (!kbFrame.size.width) {
        // no keyboard
        newFrame = appFrame;
    } else if (kbFrame.size.width == appFrame.size.width) {
        // horizontal keyboard (relative to straight oriented device)
        newFrame = CGRectMake(0, 0, appFrame.size.width, appFrame.size.height - kbFrame.size.height);
    }
    else {
        newFrame = CGRectMake(0, 0, appFrame.size.width - kbFrame.size.width, appFrame.size.height);
    }
    webview.frame = newFrame;
}
- (void)keyboardDidShow:(NSNotification *)note {
    NSLog(@"keyboardShow");
    [[note.userInfo valueForKey:UIKeyboardFrameEndUserInfoKey] getValue: &kbFrame];
    [self updateBounds];
}
- (void)keyboardWillHide:(NSNotification *)note {
    NSLog(@"keyboardHide");
    kbFrame.size.width = 0;
    [self updateBounds];
    webview.frame = [UIScreen mainScreen].applicationFrame;
}

最终,我们最终在网站上添加了一些逻辑,并独自留下了UIWebView。我们尝试实现的目标现在使用JavaScript完成,以在网页上移动一些元素。它是最佳的,但是它可以完成工作而不会破坏所有内容。

最新更新