5

我正在实现只有图像的自定义键盘,并希望在单击图像时将图像发送到 textDocumentProxy/input 控件,例如 textview,但不能克服它。到目前为止,我能够将文本/字符串发送到输入控件,但不能发送图像。

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

任何建议或解决方案都将受到高度赞赏。

4

2 回答 2

8

以下是将图像复制到粘贴板的代码

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]];

您在此处访问的更多统一类型标识符并更改粘贴板类型。

愿这对您有帮助并解决您的问题。

已编辑

“允许完全访问”从设置 -> 键盘 -> 键盘 -> 选择您的应用程序键盘 -> 打开“允许完全访问”开关

于 2015-04-09T08:32:41.077 回答
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)

并在设置中为键盘提供“允许完全访问”。并RequestsOpenAccess在 info.plist 文件中添加 YES。

于 2016-10-15T06:36:43.417 回答