我将一些文本存储为NSString
. 文本包含多个段落。当我记录或显示文本时,新行字符被正确插入。
但是,当我使用MFMailComposeViewController
并将文本添加到邮件正文时,新行被删除并且文本一起运行。
是什么原因造成的,如何保留格式?
我将一些文本存储为NSString
. 文本包含多个段落。当我记录或显示文本时,新行字符被正确插入。
但是,当我使用MFMailComposeViewController
并将文本添加到邮件正文时,新行被删除并且文本一起运行。
是什么原因造成的,如何保留格式?
我相信你这样做的方式应该是有效的,如果你指的是换行符\n
。一种替代方法是替换出现的\n
with<br>
并将作曲家的 isHTML 标志设置为 YES:
NSString *emailString = [myParagraphs stringByReplacingOccurrencesOfString:@"\n" withString:@"<br>"];
[mailComposer setMessageBody:emailString isHTML:YES];
(好吧,如果每个人都从我的评论中写一个答案,那么我也写一个......)
如果您指示视图控制器将文本视为 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];