web-dev-qa-db-fra.com

Ajout d'un saut de ligne à une UITextView

J'ai une UITextView qui prend une NSString avec un formatage stringWithUTF8String. Il tire ses valeurs d'une base de données et je souhaite que le texte de la base de données soit restitué avec des ruptures dans le texte. J'ai essayé d'utiliser \n pour le faire, mais le rendu est sous forme de texte. Faire cela dans ma page d'information de l'application en tant que texte simple a fonctionné, mais je pense que la raison pour laquelle cela ne fonctionne pas lors de son extraction de la base de données est dû au formatage. 

Aucune suggestion?

58
Mark Cicero

Si vous souhaitez ajouter newline à l'inspecteur-attribut (AI) du storyboard Xcode5/Xcode6, procédez comme suit:

  1. Faites glisser une UITextView.
  2. Double-cliquez dessus pour éditer le texte, placez le curseur là où vous voulez le saut de paragraphe.
  3. Appuyez sur alt-Enter plusieurs fois pour créer une ligne et un paragraphe vides.

Ou bien, CTRL + Entrée crée une nouvelle ligne.

Vous pouvez maintenant voir l'effet en mode de sortie/mode d'affichage dans le storyboard.enter image description here

86
imti

Développer un peu la réponse de tc: quand vous avez des nouvelles lignes dans la chaîne, vous voulez probablement les convertir en \n (c'est-à-dire, @"\\n" dans Cocoa) puis enregistrez-les dans la base de données et, lors de l'extraction de la chaîne BACK à partir de la base de données, vous voudrez probablement convertissez ceux-ci en nouvelles lignes. Donc, vous utiliseriez du code comme ceci:

NSString *saveString = [myTextField.text stringByReplacingOccurrencesOfString: @"\n" withString: @"\\n"];
// save it to the db
// ... later ...
NSString *dbString = // get the string from the db.
myTextField.text = [dbString stringByReplacingOccurrencesOfString: @"\\n" withString: @"\n"];
36
Olie

Simplement le ci-dessous:

{
textView.text = @"January: 7th,21st,\n February: 4th,18th,\n March: 4th,18th,\n April: 1st, 15th, 29th, \n May: 13th, 27th, \n June: 10th,24th, \n July: 8th, 22nd, \n August: 5th, 19th, \n September: 2nd, 16th, 30th, \n October: 14th, 28th, \n November: 11th, 25th";
        NSLog (@"Recycle Dates for Abbey Way");

}

sera mis comme ci-dessous dans votre textView ou ce que vous choisissez

Sortie:

Les 7 et 21 janvier
Février: 4, 18,
Mars: 4, 18 etc etc etc

21
Alex McPherson

Dans Swift, ajoutez simplement "\ n" entre deux chaînes

Exemple:

let firstString = "Hello"

let secondString = "Senorita"

textview.text = firstString + "\n" + "secondString"
8
Ravindra Kishan

Je pense que vous devriez essayer d’utiliser "\ r".

Je l'ai testé sur Xcode 4.2.1, iOS 4.3

Edit: cela fonctionne également dans iOS 3.0 et iOS 5.1

7
hellangle

UITextView prendra les nouvelles lignes, mais cela ne fonctionnera pas avec les retours de voiture . Vous devrez vous assurer que votre saisie est correcte.

Je l’ai essayé sous l’éditeur IB et j’ai eu quelques problèmes avec au début ..__ Ensuite, j’ai utilisé un éditeur de texte, tapé mon texte puis collé dans l’éditeur IB.

Pour moi, ça a fait l'affaire… .. Votre source provient d'une base de données, je pense donc que les nouvelles lignes sont en réalité des lignes nouvelles, mais que les retours de chariot à la hapha ou autres Vérifiez la chaîne HEX de votre entrée.

2
Leander

Définissez les paramètres keyboardType (UIKeyboardType) et (UIReturnKeyTYpe) returnKeyType 

si vous construisez en code.

Si vous utilisez IB, allez simplement au premier panneau d’inspecteur et définissez le TextInputTraits

1
Vivek Sharma

quand vous obtenez de db. essayer

NSString *content = [mytext stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"];
self.textView.text = content;
1
Tuan Pham

si vous recevez le texte sur le Web, assurez-vous de laisser un espace avant et après le /nqui a résolu mon problème

à titre d'exemple (php):

echo $item_detail['item_title']."  \n ";
0
Omar N Shamali