2010-03-09 38 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