When a form is contained within a scroller, it is possible to scroll the content whilst the softkeyboard is displayed and the input element retains focus - on iOS, this causes the cursor and the text to show through UI elements on iOS such as the titlebar content.
Has anyone come up with a workaround or knows whether this is fixed in Air 3/ Flex 4.6?
I had the same problem and afortunately I found this is caused by the new StageText that is enabled by default on Flex 4.6. If you want to get rid of this bug a workaround is to write on each textinput to use the skin from previous sdk 4.5.1 ( in the mxml ):
Obviously I dont understand how the StageText is going to be usefull if you cant use it in a scroller container. Current constelation would only let you use the Stage text in a bug-free status when you use a non-scrollable screen and that means you just have the half of the screen to display textinputs otherwise they will be overlayed by the softkeyboard.
Hope this helps and hopefully this will be of interest for adobe or whoever is going to take care of this in the future :S
Thanks for posting and sorry for the slow reply.
Your suggestion will only make a difference on Android - iOS had this bug in 4.5.*, so reverting to the older skin will make no difference on this OS.
Adobe suggest not scrolling forms if you want to support iOS or use the new StageText features - the suggested workaround of wizard forms is unacceptable for my use case and a scrolling form is a common UI pattern on mobile, so I'm experimenting with the following:
1. Use CSS to apply the old TextInputSkin
2. I monitor the soft keyboard events and maintain a 'isKeyboardVisible' property in my views.
3. I register event handlers on the scroller viewport and set stage.focus to null if my keyboard is currently active and the user attempts to scroll.
This works and prevents the artifacts from showing through the UI, I just need to find the perfect events.. property change is no good, so I'm playing with mouse and touch events.
I have migrated my app from Flex 4.5.1 to Flex 4.6 and the TextInput click event was broken so I do this «
skinClass="spark.skins.mobile.TextInputSkin" » and all seems work (tested in my Android and seems ok) but one user with iPhone complained that now the keyboard dont popup ?
Please help !
Your issue is unrelated to the iOS Form Scrolling bug.
You'll likely get a (better) response if you find an associated topic or start a new topic - FWIW though, when using the skin TextInputSkin, the iOS keyboard does work, so you may have a bug in your code - try posting a small test case or example.
I have the same problem with skinClass="spark.skins.mobile.TextInputSkin" or StageText, when a form is contained within a scroller, it is possible to scroll the content whilst the softkeyboard is displayed and the input element retains focus - on iOS, this causes the cursor and the text to show through UI elements on iOS such as the titlebar content.
Has anyone come up with a workaround ?