7

我的应用程序是一个富编辑器,它使用UIWebViewHTML5 的contenteditable功能。

现在,当网络内容有任何图像时,我的应用程序在处理将网络内容从 safari 复制到我的 UIWebView 时遇到了一些问题。我想将其中的图像 html 标记替换为我<img>UIPasteboard一些图像。

但是,当我使用以下代码检查粘贴板时,粘贴板中没有任何图像。但是从 safari 复制/粘贴图像到我的应用程序工作正常。

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSLog(@"clip board strings = %@", pasteboard.strings);
NSLog(@"clip board urls = %@", pasteboard.URLs);
NSLog(@"clip board images = %@", pasteboard.images);

如果我从 safari 复制一些图像和文本然后打开我的应用程序,NSLog 如下:

2012-04-20 14:53:37.558  clip board strings = (
    "text"
)
2012-04-20 14:53:37.559 [46800:17903] clip board urls = (
)
2012-04-20 14:53:37.559 [46800:17903] clip board images = (null)

我想问,如何从 UIPasteboard 获取图像信息以及如何操作它?

提前致谢。

4

1 回答 1

1

您可以使用以下方法从粘贴板中提取图像:

UIImage *image = [UIPasteboard generalPasteboard].image; 

您可以使用以下方法检查粘贴板是否包含图像文件:

BOOL imgPasteBoard= [[pasteboard pasteboardTypes] containsObject:@"public.png"]; 

然后通过检查布尔值。您也可以尝试使用此代码

[[UIPasteboard generalPasteboard] containsPasteboardTypes:UIPasteboardTypeListImage]; UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];  
if (pasteboard.image!= nil) 
{ 
   [self insertImage:pasteboard.image]; 
   //insert image being a function where you write the code to insert Images to psteboard
} 

希望这对你有帮助..

现在使用以下代码加载 UIImage :-

NSData *imageData = UIImagePNGRepresentation(image);
[webView loadData:imageData MIMEType:imageMIMEType textEncodingName:nil baseURL:nil];
于 2012-05-11T08:50:11.057 回答