MFMessageComposeViewController不显示相机图标

当我手动调出“新消息”时,我会在文本编辑区域的左侧看到一个摄像头图标。 当我使用MFMessageComposeViewController时,它不会显示此图标,这意味着您无法插入图像。 我知道这可以做到,因为制作txtAgif的人可以做到这一点。 一个微妙的区别是盖子已打开。 这可能是他们如何使其发挥作用的线索。

我知道MFMessageComposeViewController不允许您以编程方式插入图像,这就是我正在复制到UIPasteboard技巧的原因。 这部分很完美。

这里也问过同样的问题,除了“不能做”之外,这个问题还没有得到解答。

这是我的第一篇文章,所以我没有足够高的排名来为其他问题发帖做出贡献。

他们是怎么做到的? 有没有MFMessageComposeViewController的技巧或他们使用完全不同的东西?

我通过以下代码解决了这个问题:

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; pasteboard.persistent = YES; NSString *imagefile =app.strimagepath; /// BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:imagefile]; if (fileExists) { NSData *data = UIImagePNGRepresentation([UIImage imageWithContentsOfFile:imagefile]); pasteboard.image = [UIImage imageWithData:data]; } NSString *phoneToCall = @"sms: 123-456-7890"; NSString *phoneToCallEncoded = [phoneToCall stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; NSURL *url = [[NSURL alloc] initWithString:phoneToCallEncoded]; [[UIApplication sharedApplication] openURL:url]; 

这里app.strimgPath是存储在文档目录中的图像的路径。 当MessageView打开时。 Longpress并单击粘贴并将粘贴消息。

我找到了答案! 使用UIApplication sharedApplication启动空白消息,而MFMessageComposeViewController则不行。 因为我正在使用UIPasteboard,所以我不需要将物品插入体内。

  NSString *phoneToCall = @"sms: 123-456-7890"; NSString *phoneToCallEncoded = [phoneToCall stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; NSURL *url = [[NSURL alloc] initWithString:phoneToCallEncoded]; [[UIApplication sharedApplication] openURL:url]; 

这是MFMessageComposeViewController中的一个错误,因为它们为什么允许将图像插入到一个而不是另一个中。 我会插入一张图片,但我不被允许,因为我没有足够的声誉。