2015-12-16 14 views
6

UITextViewに画像を貼り付けることをサポートする必要があります。クリップボードにコピーされた画像では、 "Paste"オプションは表示されません。クリップボードにテキストがあるときに機能します。UITextViewで貼り付けられた画像を受信する方法

カスタムUITextViewpasteオプションを上書きする方法です。 How to get UIMenuController work for a custom view?、:しかし、私はそれに関連するいくつかの質問に出くわしたが、彼らは私のような経験の浅い開発者にとって有用ではなかったで開始するまで表示するオプションを取得する方法についてのヘルプ...

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

が必要How to paste image from pasteboard on UITextView?

答えて

7

私は自分の質問に答えました。

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

どういたしまして:あなたがしなければならないのは、UITextViewは、このUITextViewメソッドをオーバーライドすることで、「私は貼り付けた画像を受信することができます」と言っています。

+0

コードは正しいですが、画像をコピーした後に貼り付けオプションが表示されません。これを解決するには? –

+0

UITextViewをこのコードで作成したカスタムクラスのインスタンスに設定することを忘れましたか? –

+0

@MattKoalaあなたの答えは完璧です。 – Urmi

関連する問題