5 Stimmen

GWT-Fokus auf eine TextBox funktioniert nicht

Ich versuche, den Fokus auf eine bestimmte Listenansicht in einer Baumstruktur zu legen, und verwende den folgenden Code

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

In der Textansicht blinkt der Cursor, aber wenn ich eine Taste eingebe, passiert nichts, ich muss die Textansicht erneut auswählen, bevor ich etwas eingeben kann.

Warum ist das so?

GELÖST

Das Einstellen des Fokus wurde in einer for-Schleife durchgeführt, die die Baumelemente in einer Schleife erstellte.

3voto

Martin Algesten Punkte 12167

Könnte es sein, dass etwas in Ihrem aktuellen Aufrufstapel den Fokus wegnimmt, nachdem Sie ihn gesetzt haben? Sie könnten versuchen, den Fokus in einem Timeout zu setzen:

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

2voto

z00bs Punkte 7512

Ich habe versucht, Ihr Problem zu reproduzieren, aber der folgende Ausschnitt funktioniert bei mir:

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

Ist es nicht das, was Sie erreichen wollen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X