3

我对 2.6 (ios) 中的一个新的 phonegap 功能有疑问,最后它们包括了一个缩小 web 视图以处理固定元素的选项。不幸的是,与设置为 true 的选项结合使用时HideKeyboardFormAccessoryBar,会出现一个奇怪的白条,而不是 AccessoryView(看一下截图)。KeyboardShrinksView当我设置为 false时,这不会发生

有人在新版本中遇到过类似的问题吗?这是错误还是功能?;)

欢呼霍斯特。

4

4 回答 4

5

这是一个错误。这是由于在显示键盘后 WebView 没有正确调整大小造成的。默认情况下,PhoneGap 通过键盘高度减去视图框架来调整 WebView 的高度。但是,它没有考虑到表单附件栏隐藏在该计算中的事实。

这是PhoneGap修复此错误时的临时解决方案:

在 CDVViewController.m(在 Classes/Cleaver 下)中,转到第 140 行。它应该在(void)keyboardWilLShowOrHide 函数内。在 showEvent if 语句中,它根据键盘的高度计算 WebView 的新尺寸。

将 if 语句的内容更改为:

if (showEvent) {
    newFrame.size.height -= keyboardFrame.size.height;
    if ([@"true" isEqualToString: self.settings[@"HideKeyboardFormAccessoryBar"]]) {
        newFrame.size.height += 45;
    }
}

我添加了一个额外的 if 语句,它还检查 HideKeyboardFormAccessoryBar 配置。如果设置了,它会将 WebView 的大小再增加 45 个像素(表单附件栏的高度)。

于 2013-05-03T10:18:21.763 回答
1

当键盘向上过渡时,似乎 webview 已经调整大小并且背景是白色的,从而导致显示白色背景。我的 HTML 正文背景是黑色的,所以当白色背景闪烁时它看起来很奇怪。有谁知道如何更新 UIView 的背景?

视频以慢动作再现问题。 http://www.youtube.com/watch?v=iOjdxJuYp8c

谢谢!

汤姆

编辑:我可以通过将此代码添加到 MainViewConetroller.m 来更改背景颜色

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    self.view.backgroundColor = [UIColor colorWithRed:51/255.0 green:51/255.0 blue:51/255.0 alpha:1];
}
于 2013-06-18T21:09:15.400 回答
0

这绝对是一个错误。phonegap 开发团队将在几周后在 2.7 版本中修复此问题。

于 2013-04-12T06:53:00.500 回答
0

我刚刚检查了我的代码,我有 2.6,这个修复已经存在。但它不起作用,我仍然看到具有相同条件的灰色条。那怎么可能?

编辑:看起来我的一个队友做了这个修复并解决了这个问题。问题是您仍然可以看到灰色空间,并且它很快就被删除了。

于 2013-05-30T14:31:53.467 回答