Textarea - Ограничить содержимое в строке

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

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

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

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


person Edias    schedule 01.07.2011    source источник


Ответы (2)


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

<?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>
person Sam    schedule 01.07.2011
comment
Проблема с этим подходом заключается в том, что он не сохраняет пустые строки. Например, в этом случае все линии будут соединены. 1 строка 2 строка 3 - person Edias; 01.07.2011
comment
Проблема с этим подходом заключается в том, что он не сохраняет пустые строки. Например, в этом случае все линии будут соединены. 1 строка 2 строка 3 - person Edias; 01.07.2011

это работает с \r

var lines:Array = textArea.text.split("\r");
person macchado    schedule 06.08.2014