2010-01-19 3 views
2

Я хочу получать уведомление, когда панель FLex получает или теряет фокус. Я переопределил focusInHandler() и focusOutHandler(), но они не вызываются, когда я нажимаю на панель.Flex Panel не вызывает focusInHandler(), когда он получает фокус

Изменения стиля панелей, указывающие на то, что у него есть фокус, но обработчик не вызван.

Что мне не хватает?

ответ

3

Контейнеры (и неявно панели) на самом деле не могут быть сфокусированы. Это означает, что просто щелчок на пустом контейнере не даст ему фокуса и, следовательно, не вызовет обработчик событий для «focusIn». Для того чтобы контейнер мог «получить» фокус, ребенок этого контейнера, который реализует интерфейс IFocusManagerComponent, должен получить фокус.

Так что если вы хотите, чтобы ваша панель запускала событие «focusIn» при нажатии на нее, вы должны сфокусировать фокусируемый дочерний элемент этой панели на щелчке мыши.

0

Вы пытались явно слушать для этого события:

myPanel.addEventListener(FocusEvent.FOCUS_IN, myEventHandler); 

и убедился, что он вызывался?

+0

Я пробовал, что это тоже не получается. Не знаю, почему. – ablerman

+0

Хорошо, вы должны обновить свое сообщение с помощью некоторого примера кода. – danjarvis

Смежные вопросы