web-dev-qa-db-fra.com

comment faire un saut de ligne de texte dans flex textarea

J'ai une ficelle

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

et je veux le mettre dans une zone de texte, mais le caractère de nouvelle ligne est ignoré. Comment puis-je m'assurer que le texte se casse à l'endroit où je le veux quand il lui est attribué?

25
Cameron A. Ellis

Sur flex, pendant le codage, \n fonctionne bien sur mxml ou toute variable xml pour définir une ligne, utilisez simplement l'entité 
.

Je veux dire:

lazy
fox

nous donne

lazy<br />
fox
44

pas {\ n} mais {'\ n'}

9
Guillaume Morin

@radekg

L'OP fait référence à la chaîne de texte écrite en syntaxe MXML:

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

Essayer 

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

Sinon, utilisez l'attribut htmlText et utilisez 

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

Dans Flex, si vous essayez de placer une ligne à côté de la ligne précédente. Ensuite, il suffit de l'ajouter à la ligne précédente.

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

Maintenant, textarea1, qui est votre zone de texte dans laquelle vous voulez imprimer cette chaîne, y sera ajoutée.

0
Anuj Sharma

Je viens de tester le code suivant:

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

et avec mx: Texte

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

Les deux fonctionnent très bien. Peut-être utilisez-vous mx: TextInput ou mx: Label?

0
radekg

Tu devrais faire: 

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

C'est tout.

0
Jameel

Je viens de faire ceci comme suit,

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];
                 }
            }

Merci Tolgahan ALBAYRAK

0
Kans

Cela devrait fonctionner ou à tout le moins <br \> (sans les espaces avant le "br") devrait fonctionner si vous utilisez htmlText.

J'utilisais XML pour remplir TextArea et, comme je ne suis pas tout à fait sûr de savoir comment utiliser HTML à l'intérieur de XML (ils mentionnent que je devrais l'envelopper avec des balises CDATA), mais je viens de faire un simple 

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

Peut-être y a-t-il une meilleure façon de s'y prendre mais cela fonctionne bien.

EDIT: j'ai eu un espace après le "br"

0
nevets1219