12

Phonegap を使用してモバイル アプリを開発しています。ここからコードを借りて、キーボードから黒い次/前/完了バーを削除しました。

https://stackoverflow.com/a/9276023/35364

そのコードが行うことは、UIView オブジェクトとして黒いバーを見つけ、それに対して「removeFromSuperview」を呼び出すことです。

私たちは iOS SDK/API に詳しくありません。そのため、コードを見て何をしているのかを理解することはできますが、それが適切に行われているかどうか、またはどのように改善するかはわかりません。

私たちが直面している具体的な問題:

メッセージを書き込むためのテキスト フィールドがあり、ネイティブ SMS アプリと同様に、このフィールドの配置をキーボードの真上になるように手動で制御しています。つまり、黒いバーがあるべき場所に配置しています。

メッセージフィールドにフォーカス/入力すると、システムはビューを押し上げます。これは、ユーザーが入力したときにテキスト フィールドが非表示にならないようにするためのメカニズムのようです。

これは、テキスト フィールド表示されている場合でも発生しています。

黒いバーが通常ある場所の真上に入力フィールドを配置すると (その後ろではなく)、ビューがスクロールしないことに気付きました。

そのため、システムはどういうわけか黒いバーがまだそこにあると考えているようです!

(二重チェック: 黒いバーが削除されず、そのすぐ上にテキスト フィールドを配置すると、フォーカスして入力できますが、ビューはスクロールしません)。

質問は次のとおりです。

黒いバーがあるはずの場所の「後ろ」にあるテキストフィールドを編集するときに、「システム」がコンテンツを押し上げるのはなぜですか? まだ黒帯が完全に取れていないからでしょうか。黒いバーを「完全に」取り除くために何かをする必要がありますか? iOS にキーボードのサイズを強制的に再計算させる必要がありますか? または正確には何ですか?

このメカニズム (ビューを押し上げる) は、iOS の UIWebView または Phonegap によって実装されていますか?

この問題を解決した phonegap アプリはありますか?

4

2 に答える 2

0

これは私にとってはうまくいきました:https://github.com/don/KeyboardToolbarRemover

ただし、Phonegap 2.3.0 の時点では Cordova.plist ファイルがないことを知っておく必要があります。代わりに、構成 XML ファイルを次のように編集します。

<plugin name="KeyboardToolbarRemover" value="KeyboardToolbarRemover" />

支店で

于 2013-02-08T14:34:45.417 に答える