是否可以更改Flex TextArea中插入TAB字符的宽度?
我正在捕获FocusEvent.KEY_FOCUS_CHANGE
个事件并手动将"\t"
插入到使用嵌入式等宽字体设置样式的文本区域中。默认情况下,TAB显示两个半等宽字符宽......我需要它们显示五个宽带字符宽。
关于如何做到这一点的任何想法?
答案 0 :(得分:0)
这样的事情怎么样?
<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,在这种情况下你需要调整以上内容。但它应该有用。
答案 1 :(得分:0)
textFormat的tabStops属性是您正在寻找的。您可以设置每个标签放置位置的像素值。
var tf:TextFormat = new TextFormat();
tf.tabStops = [100, 200, 300, 400];
myTextArea.mx_internal::getTextField().defaultTextFormat = tf;