2016-01-09 53 views
4

我正在構建我的第一個自定義鍵盤。我使用的斯威夫特2和7的Xcode我有這個作爲我的鍵盤如何用自定義鍵盤發送圖像iOS

Keyboard

(我運行它在我的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) 
    

但我一直不成功。當我print(data),我收到nil,接下來行EXC_BAD_ACCESS。我怎麼能達到我有的兩個目標之一?謝謝你的幫助。

+0

你有沒有找到一個解決方案? – rain2o

+0

不是。有人早些時候發佈了答案,我們正在評論中討論它。我問他一個問題,他從不回答。我想他刪除了他的帖子。你有解決方案嗎? – penatheboss

+1

經過一些額外的研究,我發現這 - http://stackoverflow.com/a/25827906/3489599。這有點舊了,所以這可能從那時起就改變了,但是現在這是我發現回答這個問題的唯一的事情。不幸的是,這個答案是不行。 – rain2o

回答

2

對於斯威夫特3:

import MobileCoreServices 

let pasteboard: UIPasteboard = UIPasteboard.general 
let imageName = "yourImage.png" 
let newImage = UIImage(named: imageName) 
let imgData = UIImagePNGRepresentation(newImage!)! 
pasteboard.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> 
+0

Ketan,您的評論是生活保存器,謝謝 –