我和Gxt一起工作。我需要将焦点设置为页面上的第一个启用字段。但我有很多页,我想集中处理这种行为。Gxt中缺乏文档,所以我想知道是否有人遇到了这样的问题并能帮助我。
现在在每个组件的类中都是这样
protected void resetFocus() {
combobox.focus();
}
@Override
public void show() {
super.show();
resetFocus();
}我已经找到了com.extjs.gxt.ui.client.aria.FocusManager,但我完全不清楚如何使用它。或者,也可以根据焦点在组件上获取字段链。我可以将resetFocus方法移动到父类。
像这样
protected void resetFocus() {
*getFocusChain().get(0).focus();*
}发布于 2013-01-17 17:51:42
基于最后一个响应,我通过执行以下操作,使其在GXT3窗口中工作:
@Override
public void show() {
super.show();
Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
@Override
public void execute() {
field.focus();
}
});
}这样,当窗口打开时,字段就会有焦点,您可以开始键入。
发布于 2010-11-23 12:12:30
在呈现一些延迟之后,集中注意力,所以您必须使用Scheduler.get().scheduleDeferred方法。或DeferredCommand在GWT 1.7或以前。
使用示例:
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
widget.focus();
widget.el().focus();
widget.getElement().focus();
}
});https://stackoverflow.com/questions/4087730
复制相似问题