Phonegap を使用してモバイル アプリを開発しています。ここからコードを借りて、キーボードから黒い次/前/完了バーを削除しました。
https://stackoverflow.com/a/9276023/35364
そのコードが行うことは、UIView オブジェクトとして黒いバーを見つけ、それに対して「removeFromSuperview」を呼び出すことです。
私たちは iOS SDK/API に詳しくありません。そのため、コードを見て何をしているのかを理解することはできますが、それが適切に行われているかどうか、またはどのように改善するかはわかりません。
私たちが直面している具体的な問題:
メッセージを書き込むためのテキスト フィールドがあり、ネイティブ SMS アプリと同様に、このフィールドの配置をキーボードの真上になるように手動で制御しています。つまり、黒いバーがあるべき場所に配置しています。
メッセージフィールドにフォーカス/入力すると、システムはビューを押し上げます。これは、ユーザーが入力したときにテキスト フィールドが非表示にならないようにするためのメカニズムのようです。
これは、テキスト フィールドが表示されている場合でも発生しています。
黒いバーが通常ある場所の真上に入力フィールドを配置すると (その後ろではなく)、ビューがスクロールしないことに気付きました。
そのため、システムはどういうわけか黒いバーがまだそこにあると考えているようです!
(二重チェック: 黒いバーが削除されず、そのすぐ上にテキスト フィールドを配置すると、フォーカスして入力できますが、ビューはスクロールしません)。
質問は次のとおりです。
黒いバーがあるはずの場所の「後ろ」にあるテキストフィールドを編集するときに、「システム」がコンテンツを押し上げるのはなぜですか? まだ黒帯が完全に取れていないからでしょうか。黒いバーを「完全に」取り除くために何かをする必要がありますか? iOS にキーボードのサイズを強制的に再計算させる必要がありますか? または正確には何ですか?
このメカニズム (ビューを押し上げる) は、iOS の UIWebView または Phonegap によって実装されていますか?
この問題を解決した phonegap アプリはありますか?