Textarea - ограничение контента на строку - PullRequest
0 голосов
/ 01 июля 2011

Можно ли в любом случае ограничить содержимое текстовой области на строку?

Например, в случае, если пользователь вставит текст, переполняющий это «предопределенное» количество строк, текстовое поле просто отобразитсодержание до ограниченного значения, предварительно установленного.Имейте в виду, что должны учитываться пустые строки.

Любая помощь будет приветствоваться.

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 06 августа 2014

работает с \r

var lines:Array = textArea.text.split("\r");
0 голосов
/ 01 июля 2011

Попробуйте это:

<?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>
...