[
https://issues.apache.org/jira/browse/FLEX-29024?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13822370#comment-13822370
]
Maurice Amsellem edited comment on FLEX-29024 at 11/14/13 12:44 PM:
--------------------------------------------------------------------
I changed the ticket title to reflect the real issue.
I could make more tests on an iPad that confirm my assumptions and what is
described in Adobe links above:
It's not about subclassing the skin, but rather on the base skins capabilities
themselves.
TextInput can be used on mobile with two possible skins, that both have pros
and cons. You chose the one that better fits your requirements, but none are
perfect fit.
*a) StageTextInputSkin:*
it's a wrapper on *StylableStageText* and *StageText* (native OS text field),
and allows fine control on the native soft keyboard capabilities:
autoCapitalize, autoCorrect, softKeyboardType, but cannot be used on Forms that
scrolls and does not support embedded or complex styled fonts.
(however, it behaves correctly when changing the orientation of the screen,
tested by me).
This is the default and preferred skin
*b) TextInputSkin*
This is purely Flex component, using *StyleableTextField* (subclass of
flash.text.TextField) as the inner input object. It's part of the DisplayList,
so allows all Flex behavior (Scrolling, styling, embedded fonts).
However, it does not allow for fine control of the soft keyboard caps.
autoCaps, autoCorrect and softKeyboardType are ignored and use default values.
Now, you know the limitations of each option, so chose the one that fits your
#1 requirements, but you can't get scrolling and keyboard=number at the same
time.
*Important Note*: The key to this behavior is the innner classes (
flash.text.StageText and flash.text.TextField) which both belong to the Flash
Player or AIR player.
So this is definitely an *Adobe* issue, and not a Flex issue, sorry.
was (Author: mamsellem):
I changed the ticket title to reflect the real issue.
I could make more tests on an iPad that confirm my assumptions and what is
described in Adobe links above:
It's not about subclassing the skin, but rather on the base skin capabilities
themselves.
TextInput can be used on mobile with two possible skins, that both have pros
and cons. You chose the one that better fits your requirements, but none are
perfect fit.
*a) StageTextInputSkin:*
it's a wrapper on *StylableStageText* and *StageText* (native OS text field),
and allows fine control on the native soft keyboard capabilities:
autoCapitalize, autoCorrect, softKeyboardType, but cannot be used on Forms that
scrolls and does not support embedded or complex styled fonts.
(however, it behaves correctly when changing the orientation of the screen,
tested by me).
This is the default and preferred skin
*b) TextInputSkin*
This is purely Flex component, using *StyleableTextField* (subclass of
flash.text.TextField) as the inner input object. It's part of the DisplayList,
so allows all Flex behavior (Scrolling, styling, embedded fonts).
However, it does not allow for fine control of the soft keyboard caps.
autoCaps, autoCorrect and softKeyboardType are ignored and use default values.
Now, you know the limitations of each option, so chose the one that fits your
#1 requirements, but you can't get scrolling and keyboard=number at the same
time.
*Important Note*: The key to this behavior is the innner classes (
flash.text.StageText and flash.text.TextField) which both belong to the Flash
Player or AIR player.
So this is definitely an *Adobe* issue, and not a Flex issue, sorry.
> TextInput component ignores autoCapitalize, autoCorrect, and softKeyboardType
> properties when using TextInputSkin skin
> ----------------------------------------------------------------------------------------------------------------------
>
> Key: FLEX-29024
> URL: https://issues.apache.org/jira/browse/FLEX-29024
> Project: Apache Flex
> Issue Type: Bug
> Components: Spark: TextInput
> Affects Versions: Adobe Flex SDK 4.6 (Release)
> Environment: Affected OS(s): All OS Platforms
> Affected OS(s): All OS Platforms
> Language Found: English
> Reporter: Adobe JIRA
> Assignee: Maurice Amsellem
>
> Steps to reproduce:
> 1. add a textinput in a flex mobile project then do one or more of the
> following:
> 2. set the autoCapitalize property to "none"
> 3. set the autoCorrect property to "false"
> 4. set the softKeyboard property to "number"
> 5. create a custom skin and set the skin either in a css file or by setting
> the skin property of the component. (note: I have tried just making a skin
> as simple as extending the TextInputSkin with nothing else but calling the
> super() method, and I have tried coping the actual TextInputSkin myself and
> setting the skin to that file and the functionality will not work)
>
> Actual Results: Text input will still use autocorrect, auto capitalize and
> only show the regular keyboard. Removing the skin results in the
> functionality working properly.
>
>
> Expected Results: Text input with custom skin should not allow auto
> correcting or auto capitalization of text being typed, correct type of
> keyboard should appear as well.
>
>
> Workaround (if any): none
--
This message was sent by Atlassian JIRA
(v6.1#6144)