Flex 3 focusManager.getNextFocusManagerComponent () возвращает значение null

У меня есть приложение, в котором я хочу, чтобы клавиша ввода действовала как клавиша табуляции. Я могу легко захватить событие нажатия клавиши и установить фокус в поле ввода текста. Проблема состоит в том, чтобы выяснить, на какое поле ввода текста следует сфокусироваться. У меня есть этот код


trace(this.window.focusManager);
//returns TheWindow86.focusManager

trace(this.window.focusManager.getNextFocusManagerComponent());
//returns null

//This is what I was hoping would work
this.window.focusManager.getNextFocusManagerComponent().setFocus();

Код находится в классе контроллера, а this.window ссылается на экземпляр mxml-файла nativeWindow «TheWindow.mxml». Первая трассировка работает, как ожидалось, но вторая дает ноль. Последняя строка - это код, с которым я хочу работать.


person respectTheCode    schedule 03.07.2009    source источник
comment
Что внутри твоего окна? Есть ли настраиваемые элементы управления?   -  person Adrian Pirvulescu    schedule 04.08.2009
comment
В нем есть 20-30 текстовых полей и кнопок. Я даже вызываю функцию из события нажатия клавиши текстовых полей.   -  person respectTheCode    schedule 04.08.2009


Ответы (5)


focusManager.moveFocus (FocusRequestDirection.FORWARD);

попробуй;

person Community    schedule 09.07.2009
comment
Это то, что я не пробовал. Тем не менее, все равно возникает та же ошибка. TypeError: ошибка № 1009: невозможно получить доступ к свойству или методу ссылки на нулевой объект. - person respectTheCode; 20.07.2009

У меня такая же проблема. Понятно, что - this.window.focusManager.getNextFocusManagerComponent (). SetFocus (); - выдает ошибку, потому что - this.window.focusManager.getNextFocusManagerComponent () - возвращает null.

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

person Community    schedule 03.08.2009
comment
К такому выводу я пришел. FocusManager действует так, будто не знает порядка компонентов. - person respectTheCode; 04.08.2009

focusManager.moveFocus(mx.events.FocusRequestDirection.FORWARD);

хорошо работает, если focusManager является свойством mx.core.Application

person Community    schedule 26.08.2009

Вроде баг. Я заметил, что это происходит вокруг форм с установленными defaultButtons.

person Sri    schedule 24.11.2009

Можете ли вы попробовать:

this.window.focusManager.setFocus(this.window.focusManager.getNextFocusManagerComponent());

Надеюсь, это сработает ... если нет, дайте мне знать, и я попробую это в flex builder!

person Adrian Pirvulescu    schedule 03.07.2009
comment
Та же ошибка, что и раньше. TypeError: ошибка № 1009: невозможно получить доступ к свойству или методу ссылки на нулевой объект. - person respectTheCode; 20.07.2009