1

我将一些文本存储为NSString. 文本包含多个段落。当我记录或显示文本时,新行字符被正确插入。

但是,当我使用MFMailComposeViewController并将文本添加到邮件正文时,新行被删除并且文本一起运行。

是什么原因造成的,如何保留格式?

4

3 回答 3

4

我相信你这样做的方式应该是有效的,如果你指的是换行符\n。一种替代方法是替换出现的\nwith<br>并将作曲家的 isHTML 标志设置为 YES:

NSString *emailString = [myParagraphs stringByReplacingOccurrencesOfString:@"\n" withString:@"<br>"];
[mailComposer setMessageBody:emailString isHTML:YES];                    
于 2013-01-01T16:30:01.600 回答
2

(好吧,如果每个人都从我的评论中写一个答案,那么我也写一个......)

如果您指示视图控制器将文本视为 HTML,则可以保留其格式,否则它将被丢弃。请注意,在这种情况下,您当然必须为其提供实际的 HTML(\n在 HTML 中没有任何好处)。所以试试:

NSCharacterSet *set = [NSCharacterSet newlineCharacterSet];
NSString *html = [[body componentsSeparatedByCharactersInSet:set]
    componentsJoinedByString:@"<br />"];
[viewController setMessageBody:html isHTML:YES];
于 2013-01-01T16:40:25.427 回答
0

正如 H2CO3 在评论中提到的,您需要将其包装为 HTML 内容。

NSString *myEmailBody = @"First Line <br/> Second <br/> Third";
[composer setMessageBody:myEmailBody isHTML:YES]; 
于 2013-01-01T16:32:05.687 回答