通常、フォームとポップアップは、表示されたばかりのときはフォーカスが設定されていません。明らかな解決策は、コンポーネントの作成完了イベントで最初の入力にフォーカスを設定することでした。これにより、タブやスペースなどのキーボード ショートカットが機能し始めます。
問題は、作成が完了しても万能薬ではないことです。その時点で要素にフォーカスできない場合があり、なぜそれが起こるのかわかりません。
render イベントはフォーカスを確保しますが、非常に単純な目的のためにディスパッチしすぎます。
コンポーネントが常にフォーカス可能になる準備ができているのはどの時点ですか?
編集:起動時のフォーカスを取得するのに苦労しているコンポーネントはTitleWindow
、マウス クリック イベントとキーボード イベントの 2 つの方法でポップできる です。クリックでタイトウィンドウが表示されると、作成完了イベントで最初の入力がフォーカスされるが、キーボードイベントで表示されるとフォーカスが入らない...
今では、次のコードで動作するようになりました:
private function titlewindow_creationCompleteHandler(e:FlexEvent):void{
callLater( setTextInputFocus);
}
private function setTextInputFocus():void{
txtPregunta.setFocus();
}
しかし、表示されている方法がこれと関係があるとは思えません...なぜなら、他のいくつかもTitleWindow
このように表示されていて、それらは問題ないからです.
それで、それは何でしょうか?