2

私たちのコントロール
Combobox/DropDownList のカスタム SWT 実装があります。
これは、Text と Button を含む Composite として実装されます。
リストが表示されるとき、すべての上に配置され、テキストとボタンに配置される List コントロールを使用します。

これは期待どおりに機能します。

問題
しかし、focusLost と focusGained に問題があります。最終的には、カスタムのいずれか
の部分がフォーカスを獲得 したときに外部コンポーネントが focusGained を取得し、どの部分からもフォーカスが失われ、他の部分がフォーカスを獲得していないときにのみ focusLost をスローするようにしたいと考えています。

フォーカスがテキストからカスタム コントロール内のボタンに移動しただけの場合は、focusLost と focusGained の処理を​​避けたいと思います。

focusLostにフォーカスがどこに到達するかを知る API を知っている人はいますか?
これを何らかの方法で実装する方法を知っている人はいますか?

4

1 に答える 1

2

簡単に言えば、どのコントロールが 内からフォーカスを得たかを判断する方法がありませんfocusLost()

FocusListenerコンポジット内の各コントロールに を追加し ( を繰り返すことでこれを自動化できますgetChildren())、共通フィールドを使用してフォーカス オブジェクトを追跡することをお勧めします。

つまり、残念ながらこれを行う API 関数はありません。

于 2010-06-07T15:43:58.837 に答える