从UIPasteBoard一个电子名片粘贴到邮件
问题描述:
我一个虚拟卡(包含在包)复制到普通纸板如下:从UIPasteBoard一个电子名片粘贴到邮件
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"AM" ofType:@"vcf"];
NSData *data = [NSData dataWithContentsOfFile:filePath];
[[UIPasteboard generalPasteboard] setData:data forPasteboardType:(NSString*)kUTTypeVCard];
然后,我会喜欢的用户能够将其粘贴到电子邮件中。但是,Mail在复制到粘贴板时不提供粘贴选项。我做错了什么或邮件不能识别该纸板类型?
答
您只需直接将它添加到消息,像这样
MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"AM ofType:@"vcf"];
NSData *data = [NSData dataWithContentsOfFile:filePath];
[mailViewController addAttachmentData:data mimeType:@"text/vcard" fileName:@"AM.vcf"];
mailViewController.mailComposeDelegate = self;
[self presentModalViewController:mailViewController animated:YES];
[mailViewController release];
答
代码中的一切看起来是正确的,因此,如果邮件不会允许您将其粘贴,这意味着邮件不支持粘贴该类型。
编辑:用NSDictionary的尝试:
UIPasteboard *gpBoard = [UIPasteboard generalPasteboard];
NSData *data = [NSData dataWithContentsOfFile:filePath];
NSDictionary *item = [NSDictionary dictionaryWithObjectsAndKeys:
data, (NSString *)kUTTypeVCard,
nil];
gpBoard.items = [NSArray arrayWithObjects:item, nil];
谢谢,但你所回答,这不是问了一个问题。此外,您在答案中指定了错误的MIME类型 - 它应该是文本/电子名片 – RunLoop 2012-02-03 06:09:47
抱歉,我误解了您的问题。我以为你想把它复制到他们的剪贴板上,然后让它们粘贴到一个MFMailComposeViewController中,我编辑了MIME。 – shabbirv 2012-02-03 07:34:54