NSString mit \ n oder Zeilenumbruch

100

Weiß jemand, wie man Zeilenumbrüche in NSString verwendet? Ich muss so etwas tun -

[NSString stringWithFormat:@"%@,\n%@", mystring1,mystring2];
Dave
quelle
11
Hast du das tatsächlich versucht? Denn wenn Sie es getan hätten, hätten Sie Ihre Antwort bekommen.
Dave DeLong
Nein, es hat nicht funktioniert. Ich sehe das \ n an die Zeichenfolge angehängt, aber wenn es gerendert wird, ist es in der gleichen Zeile.
Dave
4
Stellen Sie sicher, dass diese Nachricht vom Typ NSString, die Sie anzeigen, keine HTML-Unterstützung verwendet. Wenn Sie HTML-Unterstützung verwenden, wird \ n nicht behandelt. Hoffe ich bin hilfreich. Vielen Dank, Aby
Abdul Yasin

Antworten:

177

Ich bin gerade auf dasselbe Problem gestoßen, als ich die Beschreibung für eine Unterklasse von NSObject überladen habe. In dieser Situation konnte ich Wagenrücklauf (\ r) anstelle von Zeilenumbruch (\ n) verwenden, um einen Zeilenumbruch zu erstellen.

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

Anthony F.
quelle
1
perfekt! Beachten Sie nur, dass Sie nach dem ersten% @
Sam Spencer
1
@OMGPOP, beachte, dass du für die iOS-Entwicklung auch meine Antwort unten lesen musst.
Andy A
Perfekt hat für mich funktioniert, vielen Dank für das Teilen.
SwiftBoy
32

Wenn sich Ihre Zeichenfolge in einer UIView befindet (z. B. einem UILabel), müssen Sie auch die Anzahl der Zeilen auf 0 setzen

myView.numberOfLines=0;
Andy A.
quelle
26

Ich stellte fest, dass beim Einlesen von Zeichenfolgen aus einer .plistDatei Vorkommen von "\n"als analysiert wurden "\\n". Die Lösung für mich war, Vorkommen von "\\n"durch zu ersetzen "\n". Zum Beispiel musste ich bei einer Instanz von NSStringNamed myStringRead-In aus meiner .plistDatei ...

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

... bevor ich es meiner UILabelInstanz zuordne ...

myLabel.text = myString;
Adil Hussain
quelle
2
Dies war mein genaues Szenario, Adil. Danke für deine Antwort!
iOS4Life
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];
Mohit
quelle
8

Versuchen Sie dies (stringWithFormat muss mit Kleinbuchstaben beginnen)

 [NSString stringWithFormat:@"%@\n%@",string1,string2];
Honig
quelle
2

\ n \ r scheint für mich zu arbeiten.

Ich verwende Xcode 4.6 mit IOS 6.0 als Ziel. Getestet auf dem iPhone 4S. Probieren Sie es selbst aus.

Feng Chiu

us_david
quelle
1
Dies ist keine Antwort. Bitte schreiben Sie diese in Kommentare.
Shivaay
2

Das Zeilenumbruchzeichen für NSString ist \ r

richtige Verwendung [NSString StringWithFormat:@"%@\r%@",string1,string2];

\ r ----> Wagenrücklauf

Chamath Jeevan
quelle
"StringWithFormat" ist ungültig; es sollte "stringWithFormat" sein (muss mit Kleinbuchstaben beginnen)
SpokaneDude
0

\nist der bevorzugte Weg, um eine Linie zu brechen. \rwird auch funktionieren. \n\roder \r\nsind übertrieben und können später zu Problemen führen. Kakao, hat spezifische Absatz- und Zeilenumbrüche für spezielle Anwendungen NSParagraphSeparatorCharacter, NSLineSeparatorCharacter. Hier ist meine Quelle für all das oben Genannte.

Mahboudz
quelle
0

In Swift 3 ist es viel einfacher

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

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

oder wenn Sie eine Textansicht verwenden

yourtextView.text =  "\(stringA)\n\(stringB)"
Naishta
quelle
Der Beitrag ist speziell für Objective-C gekennzeichnet.
Dylan
0

Falls \ n oder \ r nicht funktioniert und wenn Sie mit uiwebview arbeiten und versuchen, HTML mit dem Tag <br> zu laden, um eine neue Zeile einzufügen. Verwenden Sie nicht nur das <br> -Tag in NSString stringWithFormat.

Verwenden Sie stattdessen dasselbe durch Anhängen. dh mit stringByAppendingString

 yourNSString = [yourNSString stringByAppendingString:@"<br>"];
iPhoneDeveloper
quelle