2016-10-13 13 views
0

Я работаю над пользовательской клавиатурой iOS. В этом мне нужно показать наклейки и gifs на пользовательской клавиатуре, я могу показать изображения на клавиатуре, но проблема в том, что когда пользователь выбирает изображение с клавиатуры, я хочу показать его на textDocumentProxy. После некоторых исследований я понял, что невозможно вставить изображения в качестве textDocumentProxy.insertText. Поэтому я попробовал UIPasteboard, чтобы скопировать изображение с клавиатуры и вставить его в поле ввода like this.Проблема с пользовательской клавиатурой с изображениями

Вот мой код:

let pb = UIPasteboard.generalPasteboard() 
let image: UIImage = UIImage(named: "1.png")! 
let imgData: NSData = UIImagePNGRepresentation(image)! 
pb.setData(imgData, forPasteboardType: kUTTypePNG as String) 
pb.image = image 

И я также установить RequestsOpenAccess в true в .plist файла и разрешен доступ к пользовательской клавиатуры в устройстве. Но это не работает для меня.

Просьба предложить возможные способы для этого. Заранее спасибо.

+0

Когда я выбрал изображение на клавиатуре, он не показывает, что изображение скопировано или нет. И то же самое для пасты. Он не показывает параметр вставки, когда я долго нажимаю во входном представлении. – Ramakrishna

+0

Просмотрите этот ответ, я надеюсь, что вы решите свою проблему: http://stackoverflow.com/a/39554347/3752143 –

ответ

0

Вы хотите использовать gif-изображения в пользовательской клавиатуре link. и в приведенном выше коде вы используете png-изображение.

Если вы хотите скопировать нон рисунок, то вы можете использовать ниже код для Swift 3

@IBOutlet weak var imageview: UIImageView! 
var img : UIImage = UIImage(named:"1.png")! 
imageview = UIImageView(image: img) 
//copy image code 
UIPasteboard.general.image = imageview.image! 

или если вы хотите использовать рисунок, то вы можете использовать ниже код для Swift 3

let url = Bundle.main.url(forResource: "imagename", withExtension: ".gif") 
let data: NSData = NSData(contentsOf: url!)! 
UIPasteboard.general.setData(data as Data, forPasteboardType: "com.compuserve.gif") 
+0

Спасибо за ответ @Ishita. Я уже получил решение. – Ramakrishna