如何在键盘显示时禁用UIWebView的自动滚动

时间:2012-08-11 18:47:08

标签: javascript ipad ios5 cordova keyboard

我有一个使用PhoneGap的应用程序(HTML5,JavaScript,而不是原生)。每当我点击应用程序中的TextArea时,就会出现一个恶意的错误,它会在屏幕上移动我的一些元素(具体来说,它会阻塞位置:固定的东西)。

要解决这些问题,我希望能够在键盘弹出时禁用滚动UIWebView的功能,但我不确定如何执行此操作。

不确定这是否清楚,但是如何在键盘显示时禁用滚动UIWebView。

2 个答案:

答案 0 :(得分:1)

我认为这是UIWebView中的一个错误(或者说缺少功能?)。我通过将textView.scrollView.contentOffset保存在-keyboardWillShow:并将contentOffset设置为-keyboardDidHide:

中保存的值来解决此问题

不太好,因为你仍然可以看到它简单地滚动,但不会完全失去焦点。

另一种方法是将带有长文本的部分实现为本机UITextView,这样就不会发生这种不良行为。

修改 另一种解决方法是不使用contenteditable。如果你可以设法设计一个通常的文本输入字段,那么滚动将缩放到当前选择的文本字段(这也是btw为什么contenteditable行为如此奇怪,因为它找不到任何东西可以放大)。此外,*!§*$上一个下一个keyboardInput栏再次变得有用。

答案 1 :(得分:1)

这对我有用:

body {
    position: fixed;
    top:0;
    overflow:hidden;
}

我正在使用iScroll,我不知道它在原生滚动方面的表现如何。