是否可以在键盘扩展名中将文本/图像复制到UIPasteboard?与popkey.co对动画图片的作用类似。
我测试了以下代码,它似乎没有用。
func copyImage() {
UIPasteboard.generalPasteboard().string = "copy test"
}
它始终显示以下错误消息:
UIPasteboard - 无法启动粘贴板。确保它已安装在UIKit.framework / Support
中
您是否了解使用键盘扩展程序进行复制和粘贴的其他方法?
答案 0 :(得分:20)
如果我提供自定义键盘,那么我就能做到这一点" Full Access"在Settings-> General->键盘应用中。 您需要包含" RequestsOpenAccess"在Info.plist文件中= YES。你必须切换"完全访问"在“设置”应用中。
似乎Apple限制访问普通的UIPasteboard。
答案 1 :(得分:1)
首先,您必须完全访问自定义键盘才能使用图像/ GIF ... 在iPhone设置 - >一般 - >键盘 - >键盘 - >添加新键盘...(在第三方键盘下选择键盘) - >单击键盘并切换允许完全访问
要做到这一点,你必须在键盘扩展文件夹中的info.plist中设置RequestsOpenAccess = YES。
Info.plist - > NSExtension - > NSExtensionAttributes - > RequestsOpenAccess - >是的
以下方法将使按钮标记检查switch语句中的标记,并根据按钮标记将正确的图像设置为粘贴板。
func btnPressed(sender: AnyObject) {
var btn = sender as UIButton
switch (btn.tag){
case 5:
let imageURL = NSBundle.mainBundle().pathForResource("cat", ofType: "png")
let data = NSData(contentsOfURL: NSURL(fileURLWithPath: imageURL!)!);
UIPasteboard.generalPasteboard().setData(data!, forPasteboardType: "public.png")
case 10:
let imageURL = NSBundle.mainBundle().pathForResource("dog", ofType: "png")
let data = NSData(contentsOfURL: NSURL(fileURLWithPath: imageURL!)!);
UIPasteboard.generalPasteboard().setData(data!, forPasteboardType: "public.png")
}}
用户可以将图像粘贴到任何支持的应用程序......
希望这有帮助!