Textarea - ограничение контента на строку
Можно ли в любом случае ограничить содержание текстовой области на строку?
Например, в случае, если пользователь вставит текст, который переполняет это "предварительно определенное" количество строк, текстовое поле будет просто отображать содержимое до тех пор, пока не будет установлено ограниченное значение. Имейте в виду, что пустые строки должны быть приняты во внимание.
Любая помощь будет приветствоваться.
большое спасибо
2 ответа
Это работает с \r
var lines:Array = textArea.text.split("\r");
Попробуйте это:
<?xml version="1.0" encoding="utf-8"?>
<s:Application name="Spark_TextArea_limit_lines"
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
<![CDATA[
private const MAX_LINES:uint = 5;
private function textChangeHandler(event:Event):void {
//Split the string into an array of lines
var lines:Array = textArea.text.split("\n");
//If there are too many lines...
if (lines.length > MAX_LINES) {
//Clear the existing text
textArea.text = "";
//Then insert MAX_LINES of the previous text
for (var i:uint=0; i<MAX_LINES; i++) {
textArea.text += lines[i] + "\n";
}
//Finally, move the cursor to the end of input, as
//it is reset to position 0 when the text is modified.
textArea.selectRange(textArea.text.length, textArea.text.length);
}
}
]]>
</fx:Script>
<s:TextArea id="textArea" change="textChangeHandler(event)"/>
</s:Application>