Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   maxChars для ComboBox с editable (http://www.flasher.ru/forum/showthread.php?t=132404)

WhiteWoolf 11.11.2009 13:08

maxChars для ComboBox с editable
 
Есть mx:ComboBox с установленным свойством editable="true".
Требуется задать максимальное число символов допустимых для ввода.
Как поступить в ActionScript - понятно. Извлечь из комбика textField и ему установить maxChars.

К моему великому удивлению, во Flex-e не обнаружил свойства textField для ComboBox.
Собственно вопрос: существует ли способ добраться до этого своиства? Или надо писать обработчик OnChange со всеми вытекающими последствиями?

alatar 11.11.2009 22:55

Во Flex-е это свойство protected, можно наследоваться от стандартного ComboBox и добавить нужный функционал.

lighto 12.11.2009 07:15

ну можно на каждом символе считать длинну введеного текста и если больше или равно ограничетелю то editable="false"

Deidara 12.11.2009 09:40

У комбо бокса, нет свойства textField.
У него есть protected свойство textInput, у которого в свою очередь есть protected свойство textField.
Достаточно будет переопределить метод createChildren у ComboBox и задать: textInput.maxChart

WhiteWoolf 13.11.2009 16:25

Резюмирую тему:
1. Простого способа добраться до ограничителя длинны поля ввода в ComboBox нет.
2. Первый способ: наследоваться от ComboBox и переопределив метод createChildren установить значение textInput.maxChart.
3. Второй способ: повиснуть на свойстве change, и вручную подсчитать длинну поля и обрезать его.
Всем спасибо.

Geba 13.11.2009 16:48

Цитата:

Сообщение от WhiteWoolf (Сообщение 865467)
Резюмирую тему:
1. Простого способа добраться до ограничителя длинны поля ввода в ComboBox нет.
2. Первый способ: наследоваться от ComboBox и переопределив метод createChildren установить значение textInput.maxChart.
3. Второй способ: повиснуть на свойстве change, и вручную подсчитать длинну поля и обрезать его.
Всем спасибо.

Ребята, может я что-то недогоняю, но почему вы не рассматриваете решение с помощью StringValidator-а ?
Код AS3:

<mx:ComboBox id="cmb" editable="true"/>
<mx:StringValidator source="{cmb}"
                        triggerEvent="valueCommit"
                        tooLongError="Превышена длина!"
                        property="text"
                        maxLength="5"/>

http://www.picamatic.com/show/2009/1...51_335x105.png


Часовой пояс GMT +4, время: 21:19.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.