2015-12-16 11 views
6

Tôi cần hỗ trợ dán hình ảnh vào UITextView. Với hình ảnh được sao chép vào khay nhớ tạm, tùy chọn "Paste" dường như không bật lên. Nó có khi có văn bản trên bảng tạm.Cách bật UITextView để nhận ảnh đã dán

Đây là cách ghi đè tùy chọn paste trong tùy chỉnh UITextView. Nhưng tôi cần được giúp đỡ về cách để có được những lựa chọn để xuất hiện để bắt đầu với ...

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

Tôi đã xem qua một số câu hỏi liên quan, nhưng họ không phải là hữu ích cho một nhà phát triển thiếu kinh nghiệm như bản thân mình: How to get UIMenuController work for a custom view?, How to paste image from pasteboard on UITextView?

Trả lời

7

Tôi đã trả lời câu hỏi của riêng mình. Tất cả bạn phải làm là có UITextView nói "Tôi có thể nhận được hình ảnh dán" bằng cách ghi đè phương pháp UITextView này:

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

Bạn được chào đón.

+0

Mã của bạn là chính xác, nhưng tùy chọn dán của tôi không xuất hiện sau khi tôi sao chép hình ảnh. Làm thế nào để giải quyết điều này? –

+0

Bạn có nhớ đặt UITextView thành thể hiện của lớp tùy chỉnh mà bạn đã tạo bằng mã này không? –

+0

@MattKoala Cảm ơn câu trả lời của bạn là hoàn hảo. – Urmi

Các vấn đề liên quan