2016-01-09 2 views
4

Я строю свою первую пользовательскую клавиатуру. Я использую Swift 2 и Xcode 7. У меня это как моей клавиатурыКак отправить изображение с пользовательской клавиатурой 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

Для Swift 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, ваш комментарий был в жизни заставка. –

 Смежные вопросы

  • Нет связанных вопросов^_^