iOS:自定义键盘:我想将图像发送到textDocumentProxy(输入控件)

时间:2015-04-03 04:15:00

标签: ios image keyboard custom-keyboard textdocumentproxy

我正在实现仅包含图像的自定义键盘,并希望将图像发送到textDocumentProxy /输入控件,如textview,点击图片但不能克服它。 到目前为止,我能够将文本/字符串发送到输入控件而不是图像。

是否可以将图像发送到输入控件?

我们非常感谢任何建议或解决方案。

2 个答案:

答案 0 :(得分:8)

以下是复制图像到pasteboard

的代码
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://warp.povusers.org/images/test.png"]];
UIPasteboard *pasteBoard=[UIPasteboard generalPasteboard];
[pasteBoard setData:data forPasteboardType:@"public.png"];

现在的想法是在该布局中创建自定义键盘的扩展,您可以将您的UIButton和上面的按钮操作工具放在png图像上。

对于本地图片,以下代码对您来说是完全有用的,并且它在我的案例中工作。

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSData *imgData = UIImagePNGRepresentation(@"Your UIImage Here");
[pasteboard setData:imgData forPasteboardType:[UIPasteboardTypeListImage objectAtIndex:0]];

更多Uniform Type Identifiers you visit here并更改粘贴板类型。

愿这有助于解决你的问题。

<强>被修改

&#34;允许完全访问&#34;来自设置 - &gt;键盘 - &gt;键盘 - &gt;选择您的应用键盘 - &gt;在切换&#34;允许完全访问&#34;

答案 1 :(得分:1)

请尝试使用设备,您可以在设备中使用iMessage App进行测试。 UITextView和UITextField等默认输入视图不支持图像。他们只支持字符串。

以下代码会将图像复制到粘贴板中。

let pb = UIPasteboard.generalPasteboard()
let image: UIImage = UIImage(named: imgArray[indexPath.row])!
let imgData: NSData = UIImagePNGRepresentation(image)!
pb.setData(imgData, forPasteboardType: kUTTypePNG as String)

并且允许&#34;允许完全访问&#34;用于设置中的键盘。并在info.plist文件中将RequestsOpenAccess添加到YES。