如何使用自定义键盘IO发送映像

人气:113 发布:2023-01-03 标签: ios swift emoji uiimage custom-keyboard

问题描述

我正在构建我的第一个定制键盘。我用的是SWIFT 2和Xcode 7。我用这个作为我的键盘

(我在iPhone上运行它)当我点击小外星人的脸时,我想要

带有该图像的小表情符号或

将图像(如果可能)插入到用户正在键入的位置。我已尝试过此代码

let pasteboard: UIPasteboard = UIPasteboard.generalPasteboard()
let image: UIImage = currentImage!
let newImage = scaleImage(image, toSize: CGSize(width: 40, height: 40))
let imgData: NSData = UIImagePNGRepresentation(newImage)!
pasteboard.setData(imgData, forPasteboardType: UIPasteboardTypeListImage[0] as! String)

let proxy = UITextDocumentProxy.self as! UITextDocumentProxy
let data = pasteboard.string!
print(data)
proxy.insertText(data)

但我一直没有成功。当Iprint(data)时,我收到nil,后跟EXC_BAD_ACCESS。我怎样才能实现我的两个目标中的任何一个呢?感谢您的帮助。

推荐答案

对于SWIFT 5:

import MobileCoreServices

guard
    let newImage = UIImage(named: "yourImage.png"),
    let imgData = newImage.pngData()
else { return }

UIPasteboard.general.setData(imgData, forPasteboardType: kUTTypePNG as String)

还要将您的键盘扩展名info.plist设置为:

<dict>
    <key>IsASCIICapable</key>
    <false/>
    <key>PrefersRightToLeft</key>
    <false/>
    <key>PrimaryLanguage</key>
    <string>en-US</string>
    <key>RequestsOpenAccess</key>
    <true/>
</dict>

18