首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gxt焦点管理

Gxt焦点管理
EN

Stack Overflow用户
提问于 2010-11-03 13:56:18
回答 2查看 3.9K关注 0票数 5

我和Gxt一起工作。我需要将焦点设置为页面上的第一个启用字段。但我有很多页,我想集中处理这种行为。Gxt中缺乏文档,所以我想知道是否有人遇到了这样的问题并能帮助我。

现在在每个组件的类中都是这样

代码语言:javascript
复制
protected void resetFocus() {
    combobox.focus();
}

@Override
public void show() {
    super.show();
    resetFocus();
}

我已经找到了com.extjs.gxt.ui.client.aria.FocusManager,但我完全不清楚如何使用它。或者,也可以根据焦点在组件上获取字段链。我可以将resetFocus方法移动到父类。

像这样

代码语言:javascript
复制
protected void resetFocus() {
    *getFocusChain().get(0).focus();*
}
EN

回答 2

Stack Overflow用户

发布于 2013-01-17 17:51:42

基于最后一个响应,我通过执行以下操作,使其在GXT3窗口中工作:

代码语言:javascript
复制
@Override
public void show() {
    super.show();
    Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
        @Override
        public void execute() {
            field.focus();
        }
    });
}

这样,当窗口打开时,字段就会有焦点,您可以开始键入。

票数 3
EN

Stack Overflow用户

发布于 2010-11-23 12:12:30

在呈现一些延迟之后,集中注意力,所以您必须使用Scheduler.get().scheduleDeferred方法。或DeferredCommand在GWT 1.7或以前。

使用示例:

代码语言:javascript
复制
Scheduler.get().scheduleDeferred(new ScheduledCommand() {

    @Override
    public void execute() {
        widget.focus();
        widget.el().focus();
        widget.getElement().focus();
    }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4087730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档