GWT фокусируется на TextBox, он не работает

109
12

Я пытаюсь сосредоточиться на определенном виде списка в дереве, я использую следующий код


    this.txtListName.setCursorPos(this.txtListName.getText().length());
this.txtListName.setFocus(true);

В текстовом режиме курсор мигает внутри него, но когда я набираю ключ, ничего не происходит, я должен снова выбрать текстовое представление перед тем, как его можно ввести.


Почему это происходит.


решаемые


Настройка фокуса была сделана внутри цикла for, который зациклился и создал элементы дерева, когда я удалил его из цикла for, в котором он работал.

спросил(а) 2021-01-25T18:10:37+03:00 5 месяцев назад
1
Решение
88

Может быть, что-то в вашем текущем стеке вызовов отвлекает внимание после того, как вы его установили. Вы можете попробовать установить фокус в таймаут:

(new Timer() {
@Override
public void run() {
txtListName.setFocus(true);
}
}).schedule(0);

ответил(а) 2021-01-25T18:10:37+03:00 5 месяцев назад
77

Я попытался воссоздать вашу проблему, но для меня работает следующий фрагмент:


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);
}

Разве это не то, чего вы пытаетесь достичь?

ответил(а) 2021-01-25T18:10:37+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема