我正在尝试关注树中的特定列表视图,我使用以下代码
this.txtListName.setCursorPos(this.txtListName.getText().length());
this.txtListName.setFocus(true);
文本视图中的光标闪烁,但是当我键入一个键没有任何反应时,我必须再次选择文本视图才能键入。
为什么会这样。
设置焦点是在for循环中完成的,循环并创建了Tree Items,当我从for循环中删除它时。
答案 0 :(得分:3)
在您设置它之后,当前调用堆栈中的某些内容是否会将焦点移开。您可以尝试在超时时设置焦点:
(new Timer() {
@Override
public void run() {
txtListName.setFocus(true);
}
}).schedule(0);
答案 1 :(得分:2)
我尝试重新创建您的问题,但以下代码段对我有用:
public void onModuleLoad() {
Tree tree = new Tree();
final TextBox box = new TextBox();
box.setText("some content");
tree.add(box);
Button btn = new Button("set focus");
btn.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
box.setCursorPos(box.getText().length());
box.setFocus(true);
}
});
RootPanel.get().add(tree);
RootPanel.get().add(btn);
}
这不是你想要达到的目标吗?