2012-08-11 73 views
4

我有一個利用PhoneGap(HTML5,JavaScript,非本機)的應用程序。每當我點擊應用程序中的TextArea時,就會彈出一個惡性bug,它會在屏幕上移動我的一些元素(具體來說,它隱藏了位置固定的東西)。如何在鍵盤顯示時禁用UIWebView的自動滾動

要解決這些問題,我希望能夠禁用鍵盤彈出時滾動UIWebView的功能,但我不確定如何執行此操作。

不知道這是否清楚,但是如何在鍵盤顯示時禁用UIWebView的滾動。

回答

1

我認爲這是UIWebView中的一個錯誤(或者說缺少的功能?)。我工作圍繞它通過節省-keyboardWillShow:textView.scrollView.contentOffset-keyboardDidHide:

不是很好設置contentOffset所保存的價值,因爲你仍然可以看到它簡單地滾動左右,但比完全失去了焦點同樣令人不安。

另一種方法是將具有長文本的部分作爲原生UITextView實現,而這種不良行爲不會發生。

編輯: 另一個解決方法是不使用contenteditable。如果你可以設計一個通常的文本輸入框,那麼滾動將縮放到當前選定的文本框(這也是btw爲什麼可滿足的表現很奇怪,因爲它找不到任何東西放大)。此外,*!§*$前一個下一個keyboardInput欄再次變得有用。

+0

原生UITextView並不是真正的選擇。另一種方法的跳動並不理想,但我想這是目前唯一可用的選擇。謝謝 – 2012-08-12 01:00:51

+0

我添加了另一個不好的解決方法的想法。也許我們應該告訴所有我們努力工作的人們「動畫」功能(T_T) – auco 2012-08-12 09:09:32

+0

我最終切換到了絕對位置並相應地進行了調整。這並不理想,但看起來不那麼可怕。 – 2012-08-12 23:29:47

1

這個工作對我來說:

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

我使用iScroll,我不知道它是如何與當地的滾動行爲。