flex mobile: textInput не очищает подсказку в фокусе

просто

<s:TextInput x="163" y="117"  prompt="hello"/>

Не очищает подсказку при фокусе, но очищает подсказку, когда пользователь впервые вводит букву.

Это поведение на гибких мобильных устройствах (поведение в порядке на swf )

Является ли это ошибкой и как это исправить?

С уважением


person yarek    schedule 24.10.2012    source источник
comment
Я полагаю, поскольку вы пометили это как Flex 4.6; вы используете Flex 4.6? И я предполагаю из вашего кода, что вы используете класс скина по умолчанию для мобильного TextInput? Возможно, StageText, используемый на мобильных устройствах, работает иначе, чем Flash TextField?   -  person JeffryHouser    schedule 24.10.2012


Ответы (3)


Может быть другой способ избавиться от этого, но мой подход заключается в том, что вы можете добавить событие focusIn и сделать что-то вроде:

<s:TextInput id="textInput" x="10" y="24" prompt="Enter SomeThing" focusIn="textinput1_focusInHandler(event)"/>
<fx:Script>
    <![CDATA[
        protected function textinput1_focusInHandler(event:FocusEvent):void
        {
            // TODO Auto-generated method stub
            textInput.prompt = "";
        }
    ]]>
</fx:Script>

может это должно сработать для вас...

person Arshad Ali    schedule 24.10.2012

www.Flextras.com находится на правильном пути. У меня были те же проблемы с TextInput на iPad, когда поле не отображалось как пароль, когда мне это было нужно.

Все, что вам нужно сделать, это вручную применить скин Mobile TextInput.

<s:TextInput x="163" y="117" skinClass="spark.skins.mobile.TextInputSkin" prompt="hello"/>

Вы можете увидеть предоставленный мне ответ в отдельном вопросе здесь.

person Josh    schedule 24.10.2012
comment
Это, по сути, использует класс мобильной темы оформления Flex 4.5 для TextInput. [который предшествует StageText, поэтому не использует его]. - person JeffryHouser; 24.10.2012
comment
@www.Flextras.com После небольшого поиска в Google оказалось, что вы правы. Тем не менее, он решил все проблемы, которые у меня были. Вы теряете преимущества StageText, но, по моему опыту, недостатки (особенно то, что StageText находится выше всего остального и доставляет неудобства при прокрутке) намного перевешивают эти преимущества. - person Josh; 24.10.2012
comment
Ага; Я лишь предлагал разъяснения. Это не обязательно плохо. В любом случае есть компромиссы. - person JeffryHouser; 24.10.2012
comment
@www.Flextras.com Достаточно честно. Спасибо за это разъяснение. Я не знал, что это за класс скинов, пока вы не упомянули об этом. Надеюсь в будущем не уберут. - person Josh; 24.10.2012

На самом деле решение скрыть приглашение в фокусе довольно простое, просто добавьте объявление стиля, подобное этому

s|TextInput{
    showPromptWhenFocused: false;
}

или в классе

.noPromptOnFocus{
    showPromptWhenFocused: false;
}

Если вы используете второй подход, ваш TextInput должен выглядеть примерно так

<s:TextInput id="myTextInput" prompt="Write something here.." styleName="noPromptWhenFocused" />

Это прекрасно работает независимо от того, используете ли вы StageText или TextInputSkin.

person polloss    schedule 31.10.2012