\ nまたは改行付きのNSString


100

誰かがNSStringで改行を使用する方法を知っていますか?私はこのようなことをする必要があります-

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

11
実際に試してみましたか?もしそうなら、あなたはあなたの答えを得たでしょう。
Dave DeLong 2010年

いいえ、機能しませんでした。文字列に\ nが追加されているのがわかりますが、表示されるときは同じ行にあります。
デイブ

4
表示しているこのNSStringタイプのメッセージがHTMLサポートを使用していないことを確認してください。HTMLサポートを使用している場合、\ nは処理されません。参考になれば幸いです。ありがとう、Aby
Abdul Yasin

回答:


177

NSObjectのサブクラスの-descriptionをオーバーロードすると、同じ問題が発生しました。この状況では、改行(\ n)の代わりに復帰(\ r)を使用して改行を作成できました。

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


1
完璧!最初の%@の後に不要なコンマがあることに注意してください
Sam Spencer

1
@ OMGPOP、iOS開発では、以下の私の答えも確認する必要があることに注意してください。
アンディA

私にとっては完璧に機能しました。これを共有してくれてありがとう。
swiftBoy 2015

32

文字列がUIView(例:UILabel)に含まれる場合は、行数を0に設定する必要もあります。

myView.numberOfLines=0;

26

.plistファイルから文字列を読み込んでいるときに、の発生"\n"がとして解析されたことがわかりました"\\n"。私にとっての解決策は、の出現を"\\n"で置き換えることでした"\n"。たとえば、NSString名前付きのインスタンスがファイルmyStringから読み込まれ.plistたとすると、私は呼び出す必要がありました...

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

... UILabelインスタンスに割り当てる前に...

myLabel.text = myString;

2
これは私の正確なシナリオでした、アディル。ご回答有難うございます!
iOS4Life 2016年

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

8

これを試してください(stringWithFormatは小文字で始める必要があります)

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

2

\ n \ rうまくいくようです。

Xcode 4.6とIOS 6.0をターゲットとして使用しています。iPhone 4Sでテスト済み。ご自分でお試しください。

風水


1
これは答えではありません。コメントでこれらを書き込んでください。
Shivaay 2013年

2

NSStringの改行文字は\ r

正しい使い方 [NSString StringWithFormat:@"%@\r%@",string1,string2];

\ r ---->キャリッジリターン


「StringWithFormat」は無効です。"stringWithFormat"(小文字の 's'で始める必要があります)
SpokaneDude

0

\n行を分割するための推奨される方法です。 \rも動作します。 \n\rまたは\r\n過剰であり、後で問題を引き起こす可能性があります。ココアには、特定の用途のための特定の段落および改行文字がNSParagraphSeparatorCharacterありNSLineSeparatorCharacterます。 ここでは上記のすべてのための私の源です。


0

Swift 3では、はるかに単純です

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

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

またはtextViewを使用している場合

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

Postは特にObjective-C用にラベル付けされています。
ディラン2018

0

\ nまたは\ rが機能していない場合、およびuiwebviewを使用していて、<br>タグを使用してhtmlをロードして新しい行を挿入しようとした場合。NSString stringWithFormatで<br>タグを使用しないでください。

代わりに、追加して同じものを使用します。つまり、stringByAppendingStringを使用する

 yourNSString = [yourNSString stringByAppendingString:@"<br>"];
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.