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>
Другие вопросы по тегам