Экран Flex 4.6 IOS не открывается после закрытия софт-клавиатуры - PullRequest
1 голос
/ 31 января 2012

Я пишу приложение для IOS и Android, используя Flex 4.6. На Android все работает нормально, но на IOS после появления программной клавиатуры и экрана, когда клавиатура закрыта, экран никогда не сдвигается вниз. Нижняя половина экрана остается белой, а верхняя половина остается смещенной из поля зрения. Я искал в Интернете и с помощью своего кода пытался выяснить, что может быть не так, и мне не повезло. Я запускаю программу в режиме отладки, но сообщения об ошибках AS3 не отображаются. Мои трассировки () напечатаны, и приложение продолжит работать, но, очевидно, вы не можете взаимодействовать с верхней частью приложения. Все работает нормально, если я установил softkeyboardBehavior в XML на none, но тогда пользователь не сможет увидеть, где он печатает.

Я смог проверить это только на моем IPod Touch с IOS 5.0.1. Когда я пытаюсь запустить свой проект в симуляторе Flash Builders, ни заставка Android, ни версия IOS не выходят за пределы заставки.

Любая помощь будет принята с благодарностью

Спасибо

Ответы [ 3 ]

3 голосов
/ 28 сентября 2012

Я видел, что событие softKeyboardDeactivate из TextInput не вызывается, так как другие действия, которые должен вызывать unpan, не выполняются.

Кажется, это ошибка версии Flex 4.6. (http://forums.adobe.com/message/4068144).

Я нашел обходной путь, он немного хитрый, но работает.

Поместите новый TextInput, скрытый поверх View, затем на событие focusOut в оригинальном TextInput, заставьте фокус на скрытый TextInput. Событие Softkeyboard будет активировано для этого TextInput, и панорамирование вернется в верхнюю часть View, затем снимет фокус с нового TextInput, и Softkey Keyboard исчезнет.

Пользователь не заметит этого хитрого решения.

<s:TextInput id="ghost" x="-100" y="0" width="0" height="0"/>
<!-- ... -->
<s:TextInput id="original" focusOut="textInputFocusOutHandler(event)"/>

...

public function textInputFocusOutHandler(event:FocusEvent):void
{
    this.ghost.setFocus();
    callLater(this.setFocus);
}
1 голос
/ 23 мая 2012

Попробуйте добавить атрибут «enter» в ваш TextInput.Это сработало для меня, но теперь у меня есть проблема, когда он переходит против панорамирования, когда программная клавиатура деактивируется.

0 голосов
/ 01 октября 2012

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

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