IOS自定义图标电子邮件附件

时间:2011-06-22 13:45:56

标签: iphone ios email cfbundleidentifier mfmailcomposer

我按照此链接中的说明注册了我自己的自定义CFBundleDocumentTypes文件类型:How do I register a custom filetype in iOS

一切正常,除非我通过MFMailComposeViewController发送邮件时仍然有这个普通的默认附件图标而不是我自己的。 当我收到邮件时,会显示我自己的图标。发送邮件时是否可以更改默认的MFMailComposeViewController附件图标?

感谢您的帮助, 马丁

1 个答案:

答案 0 :(得分:1)

添加附件时,是否为自定义文件类型正确指定了mime类型?也许您需要将UTI显式转换为MIME类型,然后在使用MFMailComposeViewController方法时指定:

- (void)addAttachmentData:(NSData*)attachment mimeType:(NSString*)mimeType fileName:(NSString*)filename

将UTI转换为MIME类型

NSString *filePath = ... // file path for your file of a custom type.
CFStringRef fileExtension = (__bridge CFStringRef)[filePath pathExtension];
CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension, NULL);
CFStringRef MIMEType = UTTypeCopyPreferredTagWithClass(UTI, kUTTagClassMIMEType);
CFRelease(UTI);
NSString *MIMETypeString = (__bridge_transfer NSString *)MIMEType;

确保添加并导入以下框架:

#import <MobileCoreServices/MobileCoreServices.h>
#import <CoreServices/CoreServices.h>

代码段来源:Damien DeVille