Curl Global Community

Full Version: コントロールのキーフォーカスについて
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

Dialog.controls でループさせ、対象のコントロールに、
キーフォーカスがあるかどうかを確かめたいですのですが、
いくつか問題があります。

■has-key-focus? が想定する値を返却しない

TextField の場合:
 キーフォーカスを持っている(カレットが点滅している)状態にもかかわらず、
 TextField.has-key-focus? は false となっている。
 ただし、TextField.ui-object を (TextFieldUI にキャストする必要あり)
 TextFieldUI.has-key-focus? を参照すると true が取得できる。

これは少し奇妙に思えます。
なぜ コントロール自体の has-key-focus? がui-object の値と異なるのでしょうか。


■ControlUI に、 has-key-focus? のgetter がない

上記の問題と絡みますが、ControlUI に、 has-key-focus? のgetter がないため、
キーフォーカスの有無を確認するコントロールの型によって、
個別のUIクラスに ui-object をキャストする必要があり、
共通的なコードを書くことがでない。

あるコントロールにキーボードフォーカスがあるかどうかを調べる簡単な方法があれば教えてください。