Как включить UITextView для получения вставленных изображений

мне нужно поддерживать вставку изображений в UITextView. С изображением, скопированным в буфер обмена,"Paste опции" не всплывал. Это происходит, когда есть текст в буфере обмена.

вот как переопределить paste опция в пользовательском UITextView. Но мне нужна помощь в том, как получить возможность появиться для начала...

// 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];
    }
}

я столкнулся с несколькими связанными вопросами, но они не были полезны для неопытного разработчика, как я: как получить работу UIMenuController для пользовательского представления?, как вставить изображение из картона в UITextView?

1 ответов


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

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

добро пожаловать.