いくつかのテキストをとして保存していますNSString
。テキストには複数の段落が含まれています。テキストをログに記録または表示すると、改行文字が正しく挿入されます。
ただし、を使用しMFMailComposeViewController
てテキストをメールの本文に追加すると、新しい行が削除され、テキストが一緒に実行されます。
これの原因は何ですか?また、フォーマットを保持するにはどうすればよいですか?
いくつかのテキストをとして保存していますNSString
。テキストには複数の段落が含まれています。テキストをログに記録または表示すると、改行文字が正しく挿入されます。
ただし、を使用しMFMailComposeViewController
てテキストをメールの本文に追加すると、新しい行が削除され、テキストが一緒に実行されます。
これの原因は何ですか?また、フォーマットを保持するにはどうすればよいですか?
改行で参照している場合、これを行う方法は機能するはずです\n
。代替案の 1 つは、出現箇所を\n
withに置き換え<br>
、コンポーザーの isHTML フラグを YES に設定することです。
NSString *emailString = [myParagraphs stringByReplacingOccurrencesOfString:@"\n" withString:@"<br>"];
[mailComposer setMessageBody:emailString isHTML:YES];
(OK、みんなが私のコメントから答えを書いたら、私も答えを書きます...)
テキストを HTML として扱うようにビュー コントローラーに指示すると、その書式を保持できます。それ以外の場合は破棄されます。この場合、もちろん、実際の HTML をフィードする必要があることに注意してください ( \n
HTML ではダメです)。だから試してみてください:
NSCharacterSet *set = [NSCharacterSet newlineCharacterSet];
NSString *html = [[body componentsSeparatedByCharactersInSet:set]
componentsJoinedByString:@"<br />"];
[viewController setMessageBody:html isHTML:YES];
コメントで H2CO3 が述べたように、HTML コンテンツとしてラップする必要があります。
NSString *myEmailBody = @"First Line <br/> Second <br/> Third";
[composer setMessageBody:myEmailBody isHTML:YES];