come interrompere la riga di testo in textarea flessibile
-
10-07-2019 - |
Domanda
Ho una stringa
var s:String = "This is a line \n This is another line.";
this.txtHolder.text = s; //.text has \n, not a new line
e voglio inserirlo in un'area di testo, ma il nuovo carattere di linea viene ignorato. Come posso assicurarmi che il testo si interrompa nel punto desiderato quando assegnato?
Soluzione
Su flex, mentre la codifica \n
funziona bene su mxml
o su qualsiasi xml
per definire una linea basta usare 
entità linea.
Voglio dire:
lazy
fox
ci dà
lazy<br />
fox
Altri suggerimenti
non {\ n} ma {'\ n'}
@radekg
L'OP si riferisce alla stringa di testo scritta nella sintassi MXML:
<mx:TextArea text="This is a new line" />
Prova
"This is a line {\n} This is another line."
In alternativa, utilizzare l'attributo htmlText e utilizzare
"This is a line <br> This is another line."
Dovrebbe funzionare o almeno < br \ > (senza gli spazi prima del " br ") dovrebbe funzionare se stai usando htmlText.
Stavo usando XML per compilare TextArea e dato che non sono del tutto sicuro di come usare HTML all'interno di XML (menzionano che dovrei avvolgerlo con i tag CDATA) ma ho fatto semplicemente un
txt.replace("\\n", "<br/>");
Forse c'è un modo migliore per farlo ma questo funziona bene.
EDIT: avevo uno spazio dopo " br "
Ho appena testato il seguente codice:
<?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>
e con mx: testo
<?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>
Entrambi funzionano bene. Forse stai usando mx: TextInput o mx: Label?
In Flex se stai cercando di posizionare la linea accanto alla linea precedente. Quindi aggiungilo alla riga precedente.
var line:String="Hello";
textarea1.text += line;
Ora textarea1, che è l'area di testo in cui si desidera stampare questa stringa, verrà aggiunta ad essa.
L'ho appena fatto come segue,
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];
}
}
Grazie Tolgahan ALBAYRAK
Dovresti fare:
var s:String = "This is a line" + "\n" + "This is another line.";
this.txtHolder.text = s;
Questo è tutto.