Пользовательский компонент TextInput теряет фокус, но все еще содержит курсор? - PullRequest
0 голосов
/ 29 октября 2011

У меня есть пользовательский TextInput, который прослушивает события FocusEvent.FOCUS_IN и FocusEvent.FOCUS_OUT:

textDisplay.addEventListener(FocusEvent.FOCUS_IN, onFocusInHandler);
textDisplay.addEventListener(FocusEvent.FOCUS_OUT, onFocusOutHandler);

Моя onFocusInHandler функция в основном удаляет «подсказку», которая говорит пользователю, чтобы ввестизначение, при этом onFocusOutHandler делает обратное.

Например, если текст TextInput был перенесен на пустое значение и пользователь щелкает из поля TextInput, будет отображаться «Пожалуйста, введите значение"Светло-серая подсказка в TextInput.

Это прекрасно работает, пока пользователь не нажмет нашу пользовательскую кнопку" Очистить ".Кнопка очистки устанавливает текст в «», и я могу сказать, что FocusEvent.FOCUS_OUT получено, потому что текст приглашения установлен в видимый (его больше нигде не задают).Проблема в том, что курсор остается в поле, как будто он все еще имеет фокус, поэтому, если пользователь сразу начинает печатать, текст подсказки «Пожалуйста, введите значение» и введенный пользователем текст появляется надсерый текст, который выглядит довольно уродливо и нечитаемо.

Почему TextInput получает событие FocusEvent.FOCUS_OUT, если оно на самом деле не теряет фокус?Есть ли способ, которым я могу обойти это?

1 Ответ

1 голос
/ 31 октября 2011

Вариант 1. Используйте Spak TextInput во Flex 4.1 или 4.5.Это уже обеспечивает приглашение по умолчанию (как упоминалось в комментариях)

Вариант 2. Посмотрите на фокус-обложку.Этот класс кожи обычно располагается поверх нормальной кожи.Там может существовать некоторая двусмысленность между этими двумя.Попробуйте использовать пользовательскую оболочку фокуса без textDisplay и кнопки очистки.

Вариант 3. Не только используйте событие фокуса, чтобы показать или скрыть подсказку, но также посмотрите на содержимое TextInput.Вы не хотите отображать подсказку, когда текст задан связыванием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...