我将一些文字存储为NSString
。该文本包含多个段落。当我记录或显示文本时,正确插入新行字符。
但是,当我使用MFMailComposeViewController
并将文本添加到邮件正文时,新行将被删除,文本将一起运行。
造成这种情况的原因是什么,以及如何保留格式?
答案 0 :(得分:4)
我相信你这样做的方式应该有效,如果按行确定,你指的是\n
。另一种方法是用\n
替换<br>
的出现次数,并将作曲家的isHTML标志设置为YES:
NSString *emailString = [myParagraphs stringByReplacingOccurrencesOfString:@"\n" withString:@"<br>"];
[mailComposer setMessageBody:emailString isHTML:YES];
答案 1 :(得分:1)
(好吧,如果每个人都从我的评论中写下答案,那么我也会写一个......)
如果您指示视图控制器将文本视为HTML,您可以保留其格式,否则它将被丢弃。请注意,在这种情况下,您必须提供实际的HTML,当然(HTML中的\n
没有任何好处)。所以试试:
NSCharacterSet *set = [NSCharacterSet newlineCharacterSet];
NSString *html = [[body componentsSeparatedByCharactersInSet:set]
componentsJoinedByString:@"<br />"];
[viewController setMessageBody:html isHTML:YES];
答案 2 :(得分:0)
如评论中H2CO3所述,您需要将其包装为HTML内容。
NSString *myEmailBody = @"First Line <br/> Second <br/> Third";
[composer setMessageBody:myEmailBody isHTML:YES];