1

私はチタンを使ってアプリを書いています。テキスト フィールド以外の何かがクリックされるたびに、キーボードを自動的に閉じることができるようにしたいと考えています。この問題のエレガントな解決策をまだ見つけていません。

私が考えたことがいくつかありますが、まだより良い解決策を探しています:

  1. 基本的に、ビューに表示されるその他すべてにイベント リスナーを割り当て、キーボードを閉じます ( を使用textField.blur())。キーボードを閉じるだけで大​​量のコードが発生するため、これは避けたいと思います。また、ビューに何か他のものを追加することになった場合、そのオブジェクトにもクリック リスナーを追加する必要があるため、保守性があまり高くありません。
  2. 大きな透明なビューを作成し、それを画面全体に表示します。テキストフィールドの真下に配置し、キーボードを閉じるワンクリックリスナーを追加します。これは #1 よりも優れた解決策ですが、zIndex を適切に機能させるのに多くの問題があったため、まだ優れているとは言えません。テキストフィールドをカプセル化する特定の幅と高さを持つビューがあるため、私の目的にも非効率的です。コードを簡素化するためにこれらを使用しており、アプリケーション全体で再利用しています。
  3. テキスト フィールドの「blur」イベントのリスナーを追加しようとしましたが、適切に起動されないようです。

それはそれについてです。私は途方に暮れています。zIndexing は iPhone でもおかしな動作をします。Android ではまだ試していません。また、上で述べたように、私が使用するテキスト フィールドの多くは、幅と高さが設定された小さなビュー内にカプセル化されているため、Z インデックスの機能に影響すると思います。

根本的な質問は次のとおりです:フォーカスされているテキスト フィールド以外の何かがクリックされるたびに、キーボードを閉じる最善の方法は何ですか?

4

1 に答える 1

1

クリックイベントがすべてのビューとウィンドウに伝播するのが正しければ、#1オプションを変更して、最下層(ビューまたはウィンドウ)のクリックをチェックし、そのソースをチェックしてから、何をするかを決定できます。

于 2012-06-13T11:45:48.077 に答える