MFMessageComposeViewController不显示相机图标

时间:2012-03-19 22:21:17

标签: iphone ios mms uipasteboard

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

我知道MFMessageComposeViewController不允许您以编程方式插入图像,这就是为什么我要复制到UIPasteboard技巧。这部分完美无缺。

同样的问题被问到herehere这个问题没有得到解决,除了"它无法完成。"

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

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

2 个答案:

答案 0 :(得分:4)

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

 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并单击粘贴并将粘贴消息。

答案 1 :(得分:3)

我找到了答案!使用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中的一个错误,因为它们为什么允许将图像插入到一个而不是另一个中。我会插入一张图片,但我不被允许,因为我没有足够的声誉。