2

ダイアログが表示される前に、org.gwtbootstrap3.client.ui.Inputダイアログ ( ) の特定のフィールド ( ) にフォーカスを設定したいと考えています。Upload textAdd feed dialogs right hereorg.gwtbootstrap3.client.ui.Modalのような単一のフィールドを持つダイアログがある場合、使用例は非常に一般的です。ただし、この特定のgwtbootstrap3コンポーネントにフォーカスを設定する方法がわかりませんでした。

InputコンポーネントにはメソッドsetFocus(true)があります。ダイアログを表示する前にフォーカスを設定しても機能しないと思いましたが、機能しません。したがって、論理的な解決策は、メソッド呼び出しを a 内に配置することScheduledCommandです。このような:

Scheduler.get().scheduleDeferred(new ScheduledCommand() {

    @Override
    public void execute() {
        textField.setFocus(true);
    }

});

これは通常、GWT 標準コンポーネントで機能しますが、この場合は役に立たないようです。を通じてダイアログが表示されたら、通知を受け取る方法を見つけましたModalShowHandler。このような:

modal.addShowHandler(new ModalShowHandler() {

    @Override
    public void onShow(ModalShowEvent evt) {
        textField.setFocus(true);
    }

});

ハンドルに遅延呼び出しを追加して、両方を結合しようとさえしました。運がない。何か案は?

4

1 に答える 1

2

でリッスンする必要がありますModalShownEvent(注:ShownではなくShow)。

ModalShowEventモーダルの表示が(たとえば、プログラムによって)要求されたときに発生します。

ModalShownEventモーダルが実際に表示されたときに発生します。

このやや紛らわしいネーミングは、ネイティブBootstrap Modal のイベント:show.bs.modalおよびshown.bs.modal.

ModalShownEvent通常と組み合わせるとScheduler#scheduleDeferredうまくいくはずです。

于 2015-05-01T22:50:29.977 に答える