2013-01-01 3 views
0

NSString으로 일부 텍스트를 저장하고 있습니다. 텍스트에 여러 단락이 포함되어 있습니다. 텍스트를 기록하거나 표시 할 때 새 행 문자가 올바르게 삽입됩니다.NSString이 메일 본문에 추가 될 때 새 줄을 잃음

그러나 MFMailComposeViewController을 사용하고 메일 본문에 텍스트를 추가하면 새 줄이 제거되고 텍스트가 함께 실행됩니다.

이 문제의 원인은 무엇이며 서식을 유지하려면 어떻게해야합니까?

+2

보기 컨트롤러가 텍스트를 HTML로 처리하도록하여 서식을 유지할 수 있습니다. –

+0

감사합니다 - 이미이 일을하고 있습니다. –

+0

유효한 HTML인가? 어쩌면 컨트롤러 헤어 헤어 : P –

답변

1

당신이 HTML로 텍스트를 치료하는 뷰 컨트롤러를 지시하는 경우, 그 서식을 보존 할 수 있습니다 그렇지 않으면 버려집니다. 이 경우 실제 HTML을 피드해야합니다 (HTML의 경우 \n은 좋지 않습니다). 따라서 시도하십시오 :

NSCharacterSet *set = [NSCharacterSet newlineCharacterSet]; 
NSString *html = [[body componentsSeparatedByCharactersInSet:set] 
    componentsJoinedByString:@"<br />"]; 
[viewController setMessageBody:html isHTML:YES]; 
+0

당신의 대답이 내 것보다 낫다고 생각해서 +1을 던질 것이지만, 나는 당신이 의견을 게시하기 전에 내 대답으로 시작했다. 고통스럽게 내 iPad에서 코드로 답을 쓰는 속도가 느려지는 것을 알 수 있습니다. –

+1

@ 0x7fffffff 그 것을 되 살리게하십시오 : P 나는 그 느낌을 안다. –

+0

iPad 용 Xcode에 대한 불안감이 많은 사람들이 여기 저기에서 게시물을 보았지만 실제로 얼마나 끔찍한 지 상상할 수 있습니까? –

4

줄 바꿈으로 \n을 말하는 경우이 작업을 수행해야합니다. 하나 개의 대안은 YES로 작곡가의 isHTML 플래그를 <br>\n의 발생을 교체하고 설정하는 것입니다 :

의견 H2CO3에서 언급 한 바와 같이
NSString *emailString = [myParagraphs stringByReplacingOccurrencesOfString:@"\n" withString:@"<br>"]; 
[mailComposer setMessageBody:emailString isHTML:YES];      
0

, 당신은 HTML 콘텐츠로 포장해야합니다. (모든 사람이 내 댓글에서 답을 쓰는 경우 OK, 나는 너무 한 쓰기)

NSString *myEmailBody = @"First Line <br/> Second <br/> Third"; 
[composer setMessageBody:myEmailBody isHTML:YES];