Curl Global Community
コントロールのキーフォーカスについて - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2)
+--- Thread: コントロールのキーフォーカスについて (/showthread.php?tid=830)



コントロールのキーフォーカスについて - umemura - 01-23-2013


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 をキャストする必要があり、
共通的なコードを書くことがでない。

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