我正在尝试从我的可可应用程序发送电子邮件中的一些文本(使用Mail.app)。最初我尝试使用HTML发送格式正确的文本。但mailto:URL不支持html标记(即使在设置标题后)
所以我决定使用格式化字符串(左对齐字符串)这就是我在mailto中的内容:link的body参数
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格式化文本的确定方法?
由于
答案 0 :(得分:1)
无论您通过mailto:
网址发送什么内容,其格式都将由用户在Mail中的设置决定。默认设置使用比例字体,并在使用比例字体时将文本与空格对齐注定要失败。您无法强制Mail通过mailto:
URL使用等宽字体。您只能以这种方式向Mail发送普通字符串。
通常,mailto:
链接应仅用于创建非常基本的电子邮件内容。
如果您想控制电子邮件的格式,您应该按照this answer to a previous question中的说明创建HTML电子邮件。