通过UIPasteBoard在sms中粘贴图像

时间:2011-04-14 12:56:25

标签: iphone objective-c ios uiimage uipasteboard

我要做的是在短信中粘贴我的应用中的一些图片。

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSString *imagefile = [[NSBundle mainBundle] 
                       pathForResource:@"imagename"]
                       ofType:@"png"];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:imagefile];

if (fileExists){    
    UIImage *ui = [[UIImage alloc] initWithContentsOfFile:imagefile];
    pasteboard.image = ui;
    [ui release];
}

在调试模式下,我发现图像存在,并且它会进入粘贴板(我检查了它,引入了带有粘贴板图像的图像视图,这是必要的)。

保存到剪贴板后,我打电话

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:"]];

它会弹出,但当我点击“textfield”时,没有粘贴按钮显示。 有人可以指出我的错误吗? 或者这样做有意义吗?我的意思是,是否可以通过默认的iPhone消息应用程序发送图像?

3 个答案:

答案 0 :(得分:3)

仅当粘贴板包含您点击的当前对象(此处为文本字段)的受支持项目时,才会显示“粘贴”操作。您似乎只在粘贴板上添加了一个图像。文本字段不支持图像。因此“粘贴”操作不会显示。

答案 1 :(得分:1)

我有这个工作。我只是使用setData为其提供原始数据,然后使用forPasteboardType设置数据类型。

正下方
    if (fileExists){

试试这个

    NSData *data = [NSData dataWithContentsOfFile:imagefile];
    [pasteboard setData:data forPasteboardType:@"public.png"];            

您可以查找不同的PasteboardType UTI here.

答案 2 :(得分:1)

此代码工作正常:

UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"imageName"]];
[[UIPasteboard generalPasteboard] setImage:image];