是否可以在Flex TextArea中更改插入TAB字符的寬度?如何更改Flex TextArea中TAB字符的寬度?
我正在捕獲FocusEvent.KEY_FOCUS_CHANGE
事件並手動將"\t"
插入到使用嵌入的等寬字體樣式的文本區域中。默認情況下,TAB將顯示兩個半等寬字符......我需要它們顯示五個等寬字符。
有關如何做到這一點的任何想法?
是否可以在Flex TextArea中更改插入TAB字符的寬度?如何更改Flex TextArea中TAB字符的寬度?
我正在捕獲FocusEvent.KEY_FOCUS_CHANGE
事件並手動將"\t"
插入到使用嵌入的等寬字體樣式的文本區域中。默認情況下,TAB將顯示兩個半等寬字符......我需要它們顯示五個等寬字符。
有關如何做到這一點的任何想法?
這樣的事情呢?
<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");
}
}
我忘了替換的參數,可以,但我認爲它可能需要一個正則表達式,在這種情況下,你需要調整上述。但它應該工作。
textFormat的tabStops屬性是您正在查找的內容。您可以設置要放置每個選項卡的位置的像素值。
var tf:TextFormat = new TextFormat(); tf.tabStops = [100, 200, 300, 400]; myTextArea.mx_internal::getTextField().defaultTextFormat = tf;
正在使用Flex4 RichEditableText選項嗎? – 2010-06-30 15:26:30
這不是一個特定於操作系統的東西嗎?或者可能與字體有關。我不希望任何Flash API允許你改變它。 – JeffryHouser 2010-06-30 15:32:32
@Marty - 感謝您的建議。不幸的是,我的日程安排很緊,因此與Flex 3綁定在一起。 @ www.Flextras.com - 我試圖創建一個5字符寬的自定義字體字形,但文本區域似乎並不那麼喜歡。我希望能夠在AS中實現解決方案。 – Bryan 2010-06-30 15:43:55