2016-03-05 140 views
2

我正在制作自定义键盘扩展。我希望人们能够使用粘贴板功能从键盘发送贴纸。但是这个代码UIPasteboard.GeneralPasteboard().image = image;不会将贴纸复制到粘贴板上?任何人都知道swift 2.0的正确代码?将UIImage复制到粘贴板

+0

'UIPasteboard.generalPasteboard()。image = image'正在为我工​​作。我假设你的大写'G'只是一个错字。 – vacawama

+0

输入正确,您如何确认图像确实已复制到粘贴板? –

+0

我创建了两个测试应用程序。第一个将图像保存到pasteBoard中,第二个从pasteBoard中读取图像并将其显示在UIImageView中。在模拟器上运行这两个应用程序对我成功运行。 – vacawama

回答

1

你可以试试这个:

UIPasteboard.generalPasteboard().setValue(image, forPasteboardType: "public.image") 
+0

嗨,我用UIPasteboard.generalPasteboard()。setValue但当我尝试应用程序崩溃与以下消息。 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [UIPasteboard setValue:forPasteboardType:]:值不是有效的属性列表类型' – Ramakrishna

+0

嗨,@Ramakrishna。检查值类型并输入字符串'public.image/RTF/...'。可能是你尝试设置其他类型。 – deaDvo100shuB

+0

感谢您的回复。我通过使用setData()方法得到了解决方案。 – Ramakrishna

0

提供的设置您的自定义键盘完全访问权限。设置 - >常规 - >键盘 - > YourKeyBoard - >允许完全访问

除非您提供对键盘扩展的完全访问权限,否则无法将图像复制/粘贴到剪贴板。

+0

嗨,我试过了,但它不适合我。 – Ramakrishna

+0

嗨@Ramakrishna如果你使用的是Swift 3,请尝试使用以下语法复制图像:'UIPasteboard.general.image = [你的UIImage]'在我的情况下,我无法将UIImage复制到UIPasteboard,直到完全访问没有给予设置应用程序中的自定义键盘。 – user3404693

+0

嗨,我没有使用swift 3.使用swift 2.2,我理解并且在.plist文件中将RequestsOpenAccess设置为true。 – Ramakrishna