У меня есть пользовательский 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
, если оно на самом деле не теряет фокус?Есть ли способ, которым я могу обойти это?