我將一些文本保存爲NSString
。該文本包含多個段落。當我登錄或顯示文本時,新的行字符被正確插入。NSString添加到郵件正文時丟失新行
但是,當我使用MFMailComposeViewController
並將文本添加到郵件正文中時,新行將被刪除並且文本一起運行。
這是什麼原因造成的,我該如何保存格式?
我將一些文本保存爲NSString
。該文本包含多個段落。當我登錄或顯示文本時,新的行字符被正確插入。NSString添加到郵件正文時丟失新行
但是,當我使用MFMailComposeViewController
並將文本添加到郵件正文中時,新行將被刪除並且文本一起運行。
這是什麼原因造成的,我該如何保存格式?
(OK,如果每個人都從我的評論寫一個答案,那麼我寫一個太...)
如果您指示視圖控制器來處理文本作爲HTML,你可以保留其格式否則會被丟棄。請注意,在這種情況下,您必須爲其提供實際的HTML,當然(HTML中的\n
不太好)。因此請嘗試:
NSCharacterSet *set = [NSCharacterSet newlineCharacterSet];
NSString *html = [[body componentsSeparatedByCharactersInSet:set]
componentsJoinedByString:@"<br />"];
[viewController setMessageBody:html isHTML:YES];
考慮到你的回答比我的回答好,我會給你+1,但是我在發佈評論前已經開始回答了。事實證明,使用iPad上的代碼編寫答案令人痛苦地慢下來: –
@ 0x7fffffff讓你回到:P我知道那種感覺,兄弟。 – 2013-01-01 16:43:03
這很有趣,我已經從那些急於爲Xcode for iPad着急的人看過帖子,但你能想象這會有多糟糕嗎? –
我相信你這樣做的方式應該是有效的,如果通過換行符指向\n
。一個替代方案是用<br>
取代的\n
的出現和設定作曲家的isHTML標誌是:
NSString *emailString = [myParagraphs stringByReplacingOccurrencesOfString:@"\n" withString:@"<br>"];
[mailComposer setMessageBody:emailString isHTML:YES];
正如意見中提到的H2CO3,你需要把它包裝成HTML內容。
NSString *myEmailBody = @"First Line <br/> Second <br/> Third";
[composer setMessageBody:myEmailBody isHTML:YES];
您可以通過使視圖控制器將文本視爲HTML來保留格式。 – 2013-01-01 16:27:58
謝謝 - 我已經這樣做了。 –
確定它是有效的HTML?也許控制器正在拆分頭髮:P – 2013-01-01 16:42:30