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

iOS: Custom keyboard: I want to send images to the textDocumentProxy(Input controls)

我正在实现仅包含图像的自定义键盘,并希望在单击图像时将图像发送到 textDocumentProxy/input 控件(如 textview),但无法克服它。 到目前为止,我可以将 text/string 发送到输入控件,但不能发送图像。

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

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

以下是将图片复制到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 并更改粘贴板类型。

希望这对您有所帮助并解决您的问题。

已编辑

"Allow Full Access" 从设置 -> 键盘 -> 键盘 -> select 您的应用程序键盘 -> 在 "Allow Full Access"

的开关上

请在设备中试用,您可以在设备中使用 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)

并在设置中为键盘提供 "Allow Full Access"。并在 info.plist 文件中将 RequestsOpenAccess 添加到 YES。