поле даты flex 4 не отправляет событие очистки - PullRequest
0 голосов
/ 14 июня 2011

вот мое поле даты:

<mx:DateField id="date" 
    formatString="DD-MM-YYYY" selectableRange="{DTselectableRange}" 
    change="handleChange()" editable="true"  clear="dateCleared(event)"/>

Я хочу обнаружить событие очистки, Adobe Ref скажет:

Очистить Событие отправляется, когда пользователь выбирает «Очистить» (или«Удалить») из текстового контекстного меню.

, но функция dateCleared никогда не вызывается ... Мне нужно это, потому что я должен установить selectedDate в null, когда пользователь удаляет его ...

Пожалуйста, помогите мне ...

1 Ответ

1 голос
/ 18 июня 2011

Я могу подтвердить, что mx.controls.DateField не отправляет событие clear при выборе «Удалить» в меню текстового содержимого.Мне также не повезло получить событие clear для отправки в редактируемые mx.controls.TextInput и spark.components.TextInput.Хм ....

Что вы можете сделать, это обработать изменение значения элемента управления в вашем handleChange слушателе событий и установить там значение selectedDate.

Что-то вроде этого:

private var selectedDate:Date;

private function handleChange(date:Date):void {
    if (date == null) {
        selectedDate = null;
    }       
    // your existing handleChange code here
}

Кроме того, я бы изменил это:

<mx:DateField change="handleChange()" />

на это

<mx:DateField change="handleChange(DateField(event.target).selectedDate)" />
...