我想在对话框出现之前将焦点设置到对话框(org.gwtbootstrap3.client.ui.Input
)中的某个字段(org.gwtbootstrap3.client.ui.Modal
)。如果您有一个包含单个字段的对话框,例如上传文本或添加订阅源对话框right here,则用例似乎很常见。但是,我无法弄清楚如何将焦点设置为此特定gwtbootstrap3组件。
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);
}
});
我甚至尝试将两者结合起来,向句柄添加延迟调用。没运气。有什么想法吗?