2010-03-31 19 views
12

Sto facendo qualcosa di stupido? Posso pre-fill e-mail ok ma il "\ r \ n" viene ignorato nella emailBody:Nuova riga e resi ignorati in setMessageBody

- (void) sendEventInEmail 
{ 
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 
    picker.mailComposeDelegate = self; 

    NSString *emailSubject = [eventDictionary objectForKey:EVENT_NAME_KEY]; 

    [picker setSubject:emailSubject]; 

    // Fill out the email body text 
    NSString *iTunesLink = @"http://itunes.apple.com/gb/app/whats-on-reading/id347859140?mt=8"; // Link to iTune App link 
    NSString *content = [eventDictionary objectForKey:@"Description"]; 
    NSString *emailBody = [NSString stringWithFormat:@"%@\r\nSent using <a href = '%@'>What's On Reading</a> for the iPhone.", content, iTunesLink]; 

    [picker setMessageBody:emailBody isHTML:YES]; 

    picker.navigationBar.barStyle = UIBarStyleBlack; 

    [self presentModalViewController:picker animated:YES]; 
    [picker release]; 
} 

saluti

Dave

risposta

4

Doh ... lavorato troppo duro e miscelazione Obiettivo C stringhe con HTML. Usato tag <p> e </p> da risolvere.

Dave

+2

Ho impostato HTML su SÌ, swi lavorato a no e nuove linee hanno funzionato. Cosa sono i "codici di formattazione"? – quantumpotato

+0

@quantumpotato: La tua è l'unica soluzione che ha funzionato –

26

Se isHTML impostato SI \ n non ti funziona nemmeno necessario impostare isHTML: NO o utilizzare un'interruzione di linea HTML come <br /> per inserire una nuova linea di.

<p> </p> inserisce un nuovo paragrafo che di solito significa doppia interruzione di linea.

Prova questo con isHTML: SI:

[picker setMessageBody:@"1st line<br />2nd line<br />3rd line<br />and so on..." isHTML:YES]; 

Se isHTML: NO appena messo \ n

[picker setMessageBody:@"1st line\n2nd line\n3rd line\nand so on..." isHTML:NO]; 

vi darà questa:

1a linea
2a linea
3 ° riga
e così via ...

+0

Grazie Tibidabo, spiegazione davvero chiara. –