Как изменить ширину символа табуляции в Flex TextArea? - PullRequest
0 голосов
/ 30 июня 2010

Можно ли изменить ширину вставляемого символа TAB в Flex TextArea?

Я собираю FocusEvent.KEY_FOCUS_CHANGE событий и вручную вставляю "\t" в текстовую область со стилем встроенного моноширина.шрифт.По умолчанию вкладки отображаются в два с половиной моноширинных символа ... Мне нужно, чтобы они отображали пять моноширинных символов в ширину.

Есть идеи, как это сделать?

Ответы [ 2 ]

0 голосов
/ 30 июня 2010

Свойство tabStops textFormat - это то, что вы ищете. Вы можете установить значения пикселей в том месте, где вы хотите разместить каждую вкладку.

var tf:TextFormat = new TextFormat(); tf.tabStops = [100, 200, 300, 400]; myTextArea.mx_internal::getTextField().defaultTextFormat = tf;

0 голосов
/ 30 июня 2010

Как насчет этого?

<mx:Canvas>
    <mx:Script>
        [Bindable]
        public var myText:String;
    </mx:Script>
    <mx:TextArea id="textArea" text="{TabUtil.expand(myText)}" valueCommit="myText = TabUtil.contract(myText))" />
 </mx:Canvas>



  public class TabUtil
  {
       public static const SPACE:String = "     "; // Five spaces;
       public static function expand(text:String):String
       {
            return text.replace("\t",SPACE);
       }
       public static function contract(text:String):String
       {
            return text.replace(SPACE,"\t");
        }
   }

Я забыл параметры замены, но я думаю, что может потребоваться RegEx, и в этом случае вам нужно настроить выше. Но это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...