带有KeyboardShrinksView和HideKeyboardFormAccessoryBar的Phonegap 2.6

Hor*_*rst 3 ios cordova

我有2.6(ios)中的一个新的phonegap功能的问题,最后他们包括一个缩小webview来处理固定元素的选项.不幸的是,结合HideKeyboardFormAccessoryBar设置为true 的选项,会出现一个奇怪的白条而不是AccessoryView(请看截图).当我设置KeyboardShrinksView为false 时,这不会发生

有没有人遇到过与新版本类似的问题?这是一个错误还是一个功能?;)

欢呼horst.

小智 5

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

这是一个临时的解决方案,而PhoneGap修复了这个错误:

在CDVViewController.m(下类/斧),转到行140应该是(无效)keyboardWilLShowOrHide函数中.在showEvent if语句中,它根据键盘的高度计算WebView的新大小.

将if语句的内容更改为:

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

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