2010-03-09 36 views
0

我想从我的可可应用程序(通过使用Mail.app)发送电子邮件中的一些文本。最初我尝试使用HTML发送格式正确的文本。但至mailto:URL不支持HTML标签可可字符串格式化

(即使设置页眉后)所以我决定用格式化字符串(字符串的左对齐)这是我在我的mailto:链接的身体参数

NSMutableString *emailBody = [NSMutableString stringWithFormat:@"|%-35s", [@"Name" UTF8String]]; 
[emailBody appendFormat:@"|%-18s", [@"Number" UTF8String]]; 
[emailBody appendString:@"|Notes\n"]; 

[emailBody appendString:@"----------------------------------------------------------------------------------------------------"]; 

for(int i = 0; i < [items count]; i++){ 
    NSDictionary *props = [items objectAtIndex:i]; 

    NSMutableString *emailData = [NSMutableString stringWithFormat:@"|%-35s", [[props valueForKey:@"name"] UTF8String]]; 

    [emailData appendFormat:@"|$ %-16s", [[props valueForKey:@"number"] UTF8String]]; 
    [emailData appendString:[props valueForKey:@"notes"]]; 

    [emailBody appendString:@"\n"]; 
    [emailBody appendString:emailData]; 
} 

这确实给我补齐文本,但他们都不必占用相同的空间(比如如果在文本中的一个O,它占用更多的空间比其他遗址的格式)

是还有另一种用NSString格式化文本的方法吗?

感谢

回答

1

无论您是通过mailto: URL发送什么内容,其格式将由用户在邮件设置确定。当使用比例字体时,默认设置使用比例字体并将文本与空格对齐注定会失败。您无法通过mailto: URL强制Mail使用等宽字体。您只能以这种方式发送一个纯字符串到邮件。

一般而言,mailto:链接应该只用于创建非常基本的电子邮件内容。

如果您想控制电子邮件的格式,您应该创建一个HTML电子邮件,如this answer to a previous question中所述。

+0

谢谢我最初使用catlan的github代码。但是,这只适用于SL和以上。答案中的一个对两个都有效。 – lostInTransit 2010-03-09 10:43:57