Как скопировать изображение и вставить его в UITextView?

Я пробовал так много разных вещей, основываясь на том, что нашел в Интернете, и до сих пор не могу этого сделать. Есть похожие вопросы, которые я пытался собрать воедино, но это все еще не работает. Вот что у меня есть до сих пор:

class CustomUITextView: UITextView {


override func paste(sender: AnyObject?) {

    let data: NSData? = UIPasteboard.generalPasteboard().dataForPasteboardType("public.png")
    if data != nil {
        let attributedString = self.attributedText.mutableCopy() as! NSMutableAttributedString
        let textAttachment = NSTextAttachment()
        textAttachment.image = UIImage(data: data!)
        let attrStringWithImage = NSAttributedString(attachment: textAttachment)
        attributedString.replaceCharactersInRange(self.selectedRange, withAttributedString: attrStringWithImage)
        self.attributedText = attributedString

    } else {

        let pasteBoard: UIPasteboard = UIPasteboard.generalPasteboard()
        let text = NSAttributedString(string: pasteBoard.string!)
        let attributedString = self.attributedText.mutableCopy() as! NSMutableAttributedString
        attributedString.replaceCharactersInRange(self.selectedRange, withAttributedString: text)
        self.attributedText = attributedString
    }
}
}

Кроме того, мой IBOutlet для textView находится в другом файле и имеет созданный мной пользовательский тип:

@IBOutlet var textView: CustomUITextView!

Я создал подкласс UITextView и присвоил его моему текстовому представлению. Затем я переопределяю функцию вставки, чтобы разрешить изображения, так как я прочитал, что UITextField не поддерживает вставку изображений по умолчанию. В настоящее время это работает для текста, но не для изображения ---> если я делаю долгий жест нажатия, чтобы отобразить меню, кнопка «Вставить» никогда не появляется, если на PasteBoard есть изображение; он показывает только если есть текст.

В конечном счете, я хочу вставить PNG, JPEGS и изображения из URL-адресов в свое текстовое представление. Кто-нибудь, пожалуйста, помогите!!


person JEL    schedule 12.09.2015    source источник
comment
Итак, где вы модифицируете UIMenuController? Я не вижу этого в вашем коде. Если вы этого не сделаете, кнопка «Вставить», очевидно, не появится.   -  person matt    schedule 12.09.2015
comment
@matt Я нигде не модифицировал UIMenuController в своем коде. Я думал, что мне это не нужно, так как он все еще появляется, а также работает для копирования и вставки текста. Как мне изменить его для работы с изображениями?   -  person JEL    schedule 12.09.2015
comment
Так вы на самом деле смотрели, например. этот вопрос и ответ? stackoverflow.com/ вопросы/29175089/   -  person matt    schedule 12.09.2015
comment
@matt Спасибо за ссылку! Да, я пробовал это. Я мог вставлять изображения в свой textView, только если он уже был в Xcode. Я не мог заставить его работать, если копировал изображение из приложения Apple Notes или Google Images. В конечном итоге я получил то, что у меня есть сейчас, благодаря этой ссылке: stackoverflow .com/questions/13263808/   -  person JEL    schedule 12.09.2015