Я хочу установить фокус на определенное поле (org.gwtbootstrap3.client.ui.Input
) в диалоговом окне (org.gwtbootstrap3.client.ui.Modal
) перед тем, как появится диалог. Случай использования кажется довольно распространенным, если у вас есть диалог с одним полем, например . Загрузить текст или . Добавить канал Диалоги right here. Однако я не мог понять, как настроить фокус на данный компонент gwtbootstrap3.Установите фокус на вход в gwtbootstrap3 Modal
Компонент Input
имеет метод setFocus(true)
. Я предположил, что настройка фокуса перед показом диалога не будет работать, а это не так. Поэтому логичным решением является вызов метода внутри 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);
}
});
Я даже попытался объединить оба, добавив отложенный вызов к ручке. Не повезло. Есть идеи?
Работает как очарование. Даже без отложенного звонка. –