it-swarm.com.de

so machen Sie einen Zeilenumbruch in der Flex-Textarea

Ich habe eine Schnur

var s:String = "This is a line \n This is another line.";
this.txtHolder.text = s; //.text has \n, not a new line

und ich möchte es in einen Textbereich einfügen, aber das neue Linienzeichen wird ignoriert. Wie kann ich sicherstellen, dass der Text an der gewünschten Stelle bricht, wenn er zugewiesen wird?

25

Während der Codierung von \n bei mxml oder einer beliebigen xml für die Definition einer Zeile funktioniert, verwenden Sie 
-Zeilenentität.

Ich meine:

lazy
fox

gibt uns

lazy<br />
fox
44

nicht {\ n}, sondern {'\ n'}

9
Guillaume Morin

@radekg

Das OP bezieht sich auf die in MXML-Syntax geschriebene Textzeichenfolge:

<mx:TextArea text="This is a &#13; new line" />
5
noobular

Versuchen 

"This is a line {\n} This is another line."

Alternativ können Sie das Attribut htmlText verwenden und verwenden 

"This is a line <br> This is another line." 
3
Hates_

In Flex, wenn Sie versuchen, die Zeile neben der vorherigen Zeile zu platzieren. Dann hängen Sie es einfach an die vorherige Zeile an.

var line:String="Hello";
textarea1.text += line;

Jetzt wird textarea1, das ist Ihr Textbereich, in dem Sie diese Zeichenfolge drucken möchten, an die Textzeile angehängt.

0
Anuj Sharma

Ich habe gerade folgenden Code getestet:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.Adobe.com/2006/mxml"
    creationComplete="onComplete();">
    <mx:Script>
        <![CDATA[
            private function onComplete():void {
                var s:String = "This is a line \n This is another line.";
                this.txtHolder.text = s;
            }
        ]]>
    </mx:Script>
    <mx:TextArea id="txtHolder" />
</mx:WindowedApplication>

und mit mx: Text

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.Adobe.com/2006/mxml"
    creationComplete="onComplete();">
    <mx:Script>
        <![CDATA[
            private function onComplete():void {
                var s:String = "This is a line \n This is another line.";
                this.txtHolder.text = s;
            }
        ]]>
    </mx:Script>
    <mx:Text id="txtHolder" />
</mx:WindowedApplication>

Beide funktionieren gut. Vielleicht verwenden Sie mx: TextInput oder mx: Label?

0
radekg

Du solltest tun: 

var s:String = "This is a line" + "\n" + "This is another line.";
this.txtHolder.text = s;

Das ist es.

0
Jameel

Ich habe das wie folgt getan,

protected function addToTextArea(array:Array):void
            {
                textArea.text = "Array Elements are:";
                for(var k:int = 0; k < array.length; k=k+1)
                 {
                    textArea.text = textArea.text +"\n"+ array[k];
                 }
            }

Danke, Tolgahan ALBAYRAK

0
Kans

Es sollte funktionieren oder zumindest <br \> (ohne die Leerzeichen vor dem "br") sollte funktionieren, wenn Sie htmlText verwenden.

Ich habe XML verwendet, um die TextArea auszufüllen, und da ich nicht ganz sicher bin, wie HTML innerhalb von XML verwendet werden soll (sie erwähnen, dass ich es mit CDATA-Tags einpacken sollte), machte ich jedoch eine einfache Vorgehensweise 

txt.replace("\\n", "<br/>");

Vielleicht gibt es einen besseren Weg, aber das klappt gut.

EDIT: Ich hatte ein Leerzeichen nach dem "br"

0
nevets1219