TextField selectВсе работает половину времени - PullRequest
0 голосов
/ 16 декабря 2011

Я использую Vaadin и у меня есть набор текстовых полей в форме. У текстовых полей есть focusListeners, который вызывает метод, который фокусирует весь текст в текстовом поле, если оно есть.

Моя проблема заключается в том, что автоматический выбор работает буквально в половине случаев. Если я вставлю некоторый текст в текстовое поле, щелкнет за пределами текстового поля, а затем щелкнет внутри него, текст будет выделен. Однако, если я снова щелкну снаружи и затем в текстовом поле, текст будет выделен на долю секунды, чтобы в нем был только маркер ввода, где бы я ни щелкал в тексте.

Вот код:

class FormTextField extends FormLayout  {

        private static final long serialVersionUID = -2738069810605965508L;

        String caption;
        final STextField textField = Cf.formTextField(caption, "", 22);

        public FormTextField(String textField)  {

            addStyleName("panelform");
            setWidth(formWidth, UNITS_EM);

            this.textField.setCaption(textField);
            this.textField.setImmediate(true);

            this.textField.addListener(new FieldEvents.FocusListener() {

                @Override
                public void focus(FocusEvent event) {
                    textFieldSelectAll();
                }
            });


            addComponent(this.textField);

        }

        private void textFieldSelectAll()   {
            this.textField.selectAll();
        }

        public STextField getTextField()    {

            return textField;

        }
    }
}

Мне очень интересно узнать, знаком ли кто-либо из вас с этой проблемой и смог ли ее решить?

Если вам нужна дополнительная информация от меня, пожалуйста, спросите!

1 Ответ

2 голосов
/ 17 декабря 2011

Я думаю, вам тоже нужно объявить ваш FormTextField / STextField незамедлительно.

Надеюсь, это поможет.

...