2010-03-17 4 views
95

Est-ce que quelqu'un sait comment utiliser les sauts de ligne dans NSString? Je dois faire quelque chose comme ça -NSString avec n ou saut de ligne

[NSString stringWithFormat:@"%@,\n%@", mystring1,mystring2]; 
+11

Avez-vous essayé en fait cela? Parce que si vous aviez eu, vous auriez obtenu votre réponse. –

+0

non ça n'a pas fonctionné. je vois le \ n ajouté à la chaîne mais quand il rend, il est sur la même ligne. – Dave

+4

Veuillez vous assurer que ce message de type NSString que vous affichez n'utilise pas le support HTML. Si vous utilisez un soutien HTML, il ne sera pas traiter \ n. J'espère que je suis utile. Merci, Aby –

Répondre

168

Je viens de rencontrer le même problème en cas de surcharge -description pour une sous-classe de NSObject. Dans cette situation, j'étais capable d'utiliser le retour chariot (\ r) au lieu de newline (\ n) pour créer un saut de ligne.

[NSString stringWithFormat:@"%@\r%@", mystring1,mystring2];

+1

parfait! Il suffit de noter que vous avez une virgule non-nécessaire après le premier% @ –

+0

Merci. Je l'ai réparé. –

+7

ne fonctionne pas pour moi – OMGPOP

31

Si votre chaîne va dans un UIView (par exemple un UILabel), vous devez également définir le nombre de lignes à 0

myView.numberOfLines=0; 
2

\ n \ r semble fonctionner pour moi.

J'utilise Xcode 4.6 avec IOS 6.0 comme cible. Testé sur iPhone 4S. Essayez-le par vous-même.

Feng Chiu

+1

ce n'est pas une réponse .. s'il vous plaît écrivez-les dans les commentaires. – Shivaay

12
NSString *str1 = @"Share Role Play Photo via Facebook, or Twitter for free coins per photo."; 
NSString *str2 = @"Like Role Play on facebook for 50 free coins."; 
NSString *str3 = @"Check out 'What's Hot' on other ways to receive free coins"; 


NSString *msg = [NSString stringWithFormat:@"%@\n%@\n%@", str1, str2, str3]; 
7

essayer (stringWithFormat doit commencer par les minuscules)

[NSString stringWithFormat:@"%@\n%@",string1,string2]; 
21

je trouve que quand je lisais des chaînes à partir d'un fichier .plist, les occurrences de "\n" ont été analysés comme "\\n". La solution pour moi était de remplacer les occurrences de "\\n" avec "\n". Par exemple, étant donné une instance de NSString nommé myString lu dans mon dossier de .plist, je devais appeler ...

myString = [myString stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"]; 

... avant de l'assigner à mon UILabel exemple ...

myLabel.text = myString; 
+1

C'était mon scénario exact, Adil. Merci pour votre réponse! – iOS4Life

2

ligne casse caractères pour NSString est \ r

façon correcte d'utiliser [NSString StringWithFormat:@"%@\r%@",string1,string2];

\ r ----> retour chariot

+0

"StringWithFormat" n'est pas valide; il devrait être "stringWithFormat" (doit commencer par minuscule 's') – SpokaneDude

0

\n est le moyen préféré pour couper une ligne. \r fonctionnera aussi. \n\r ou \r\n sont exagérés et peuvent vous causer des problèmes plus tard. Le cacao, a paragraphe spécifique et des sauts de ligne pour des utilisations spécifiques NSParagraphSeparatorCharacter, NSLineSeparatorCharacter. Here est ma source pour tout ce qui précède.

0

Swift 3, le plus simple

let stringA = "Terms and Conditions" 
let stringB = "Please read the instructions" 

yourlabel.text = "\(stringA)\n\(stringB)" 

ou si vous utilisez un textView

yourtextView.text = "\(stringA)\n\(stringB)" 
Questions connexes