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

发布于 2024-11-16 15:55:01 字数 347 浏览 2 评论 0原文

我按照此链接中的说明注册了自己的自定义 CFBundleDocumentTypes 文件类型:如何我是否在 iOS 中注册自定义文件类型

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

感谢您的帮助, 马丁

I registered my own custom CFBundleDocumentTypes filetype as described in this link: How do I register a custom filetype in iOS

Everything is working fine except when I send a mail via MFMailComposeViewController there is still this plain default attachment icon instead of my own.
When I receive the mail my own icon is displayed. Is it possible to change the default MFMailComposeViewController-attachment icon when sending the mail?

Thanks for your help,
Martin

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

洒一地阳光 2024-11-23 15:55:01

添加附件时,您是否为自定义文件类型正确指定了 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>

代码片段源:达米安·德维尔

When you add the attachment are you specifying the mime type correctly for your custom filetype? Perhaps you need to explicitly convert your UTI to a MIME type and then specify that when using the MFMailComposeViewController method:

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

Converting UTI to MIME type

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;

Make sure to add and import the following frameworks:

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

Code snippet source: Damien DeVille

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文