我的应用是一个丰富的编辑器,它使用UIWebView
和HTML5的contenteditable
功能。
现在,当网页内容包含任何图片时,我的应用在处理将网页内容从safari复制到我的UIWebView时遇到了一些问题。我想将<img>
中的图片html标记UIPasteboard
替换为我的一些图片。
但是,当我使用以下代码检查粘贴板时,粘贴板中有 NO 任何图像。但从safari复制/粘贴图像到我的应用程序工作正常。
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSLog(@"clip board strings = %@", pasteboard.strings);
NSLog(@"clip board urls = %@", pasteboard.URLs);
NSLog(@"clip board images = %@", pasteboard.images);
如果我复制一些图像&amp;来自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获取图像信息以及如何操作它?
提前致谢。
答案 0 :(得分:1)
您可以使用以下方法从粘贴板中提取图像:
UIImage *image = [UIPasteboard generalPasteboard].image;
您可以使用以下方法检查粘贴板是否包含图像文件:
BOOL imgPasteBoard= [[pasteboard pasteboardTypes] containsObject:@"public.png"];
然后检查bool值。您也可以尝试使用此代码
[[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];