Cómo habilitar UITextView para recibir imágenes pegadas

Necesito apoyar el pegado de imágenes en una UITextView . Con una image copyda en el portapapeles, la opción " Paste " no parece aparecer. Lo hace cuando hay text en el portapapeles.

Esta es la forma de anular la opción de paste en un UITextView personalizado. Pero necesito ayuda sobre cómo get la opción de aparecer para comenzar …

 // This gets called when user presses menu "Paste" option - (void)paste:(id)sender{ UIImage *image = [UIPasteboard generalPasteboard].image; if (image) { NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init]; textAttachment.image = image; NSAttributedString *imageString = [NSAttributedString attributedStringWithAttachment:textAttachment]; self.attributedText = imageString; } else { // Call the normal paste action [super paste:sender]; } } 

Me encontré con algunas preguntas relacionadas, pero no fueron útiles para un desarrollador sin experiencia como yo: ¿Cómo lograr que UIMenuController funcione para una vista personalizada? , ¿Cómo pegar la image de la table de trabajo en UITextView?

Respondí mi propia pregunta. Todo lo que tiene que hacer es hacer que UITextView diga "Puedo recibir imágenes pegadas" anulando este método UITextView:

 - (BOOL)canPerformAction:(SEL)action withSender:(id)sender { if (action == @selector(paste:) && [UIPasteboard generalPasteboard].image) return YES; else return [super canPerformAction:action withSender:sender]; } 

De nada.