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

2022-09-21 00:00:00 emoji ios swift uiimage custom-keyboard

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

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

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

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

    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>

相关文章