Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Выделить текст в TextArea (http://www.flasher.ru/forum/showthread.php?t=127286)

Noruen 09.07.2009 19:00

Выделить текст в TextArea
 
Есть TextInput и TextArea, нужен простейший контекстный поиск с выделением.
Сделал следующим образом:
Код AS1/AS2:

        private function search(tarea:TextArea,input:String):void {
                var index:int = tarea.text.indexOf(input);
                tarea.verticalScrollPosition = 0;
                if (index != -1)
                {
                        tarea.setSelection(index,index+input.length);
                }
        }

Ну и, соответственно:
<mx:TextInput change="search(textArea,suminput.text)" id="suminput"/>
<mx:TextArea selectable="true" id="textArea"/>


Выделение показывается, только если TextArea в фокусе, как быть?
Спасибо.

DeliMIter 09.07.2009 19:08

Код AS3:

stage.focus = ...;


Noruen 09.07.2009 19:24

Но мне надо, чтобы фокус оставался в TextInput

udaaff 09.07.2009 20:44

У класса TextField есть метод getCharBoundaries(), который по индексу символа возвращает координаты ограничивающего прямоугольника, относительно начала текста (насколько я помню), a также высоту и ширину. У TextArea что-то такого не нашел.
Для поиска номера строки в которой находится символ (в случает, если надо прокрутить текст) -- TextField.getLineIndexOfChar().

Т.е. я к тому, что выделение можно нарисовать самому, при желании.

wvxvw 09.07.2009 21:14

http://livedocs.adobe.com/flash/9.0/...sShowSelection
У текстерии должно быть свойство типа mx_internal::uiTextField или как-то так, вот выставьте ему вот это свойство в true.


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

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