Phonegap 2.6与KeyboardShrinksView和HideKeyboardFormAccessoryBar

我有一个在2.6(IOS)新的phonegapfunction之一的问题,最后他们包括一个选项来缩小webview来处理固定的元素。 不幸的是,与HideKeyboardFormAccessoryBar选项设置为true相结合,出现一个奇怪的白色条,而不是AccessoryView(看看截图 )。 当我将KeyboardShrinksView设置为false时,不会发生这种情况

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

欢呼地垒。

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

这是一个临时的解决scheme,而PhoneGap修复了这个bug:

在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语句,也检查了HideKeyboardFormAccessoryBarconfiguration。 如果已设置,则会将WebView的大小增加另外45个像素(表单附件栏的高度)。

当键盘正在转换,似乎webview已经resize,背景是白色的,从而导致白色背景显示。 我的HTML正文背景是黑色的,所以在白色背景闪烁时看起来很奇怪。 有谁知道如何更新UIView的背景?

video以慢镜头再现问题。 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]; } 

这绝对是一个错误。 phonegap dev团队将在几个星期内在2.7版本中解决这个问题。

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

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