2

テキスト blob を検索する一連のエントリを持つ NSBroswer があります。ブロブが存在する場合は、 - (BOOL)browser:canDragRowsWithIndexes:inColumn:withEvent:YES を返します。

これにより、 - (BOOL)browser:writeRowsWithIndexes:inColumn:toPasteboard:

ここでは、次のことを行います。

NSUInteger changeCount;
BOOL retBOOL = YES;

changeCount = [pasteboard clearContents];
changeCount = [pasteboard declareTypes:@[NSPasteboardTypeString, NSPasteboardTypeHTML]
                                 owner:self];
didSet = [pasteboard setString:self.currentHTMLCode
                       forType:NSPasteboardTypeString];
retBOOL = retBOOL & didSet;
didSet = [pasteboard setString:[NSString stringWithFormat:@"<pre>%@</pre>", self.currentHTMLCode]
                       forType:NSPasteboardTypeHTML];
retBOOL = retBOOL & didSet;

今出てくるペーストボードのデータ分析(retBOOL:はい)は次のとおりです。

pasteboard: : <NSPasteboard: 0x101931870>
     name: : Apple CFPasteboard drag
     change count: : 77
     types: : (
    "public.utf8-plain-text",
    NSStringPboardType,
    "public.html",
    "Apple HTML pasteboard type"
)
     items: : (
    "<NSPasteboardItem: 0x1005a5cb0>"
)
         PBItem: : <NSPasteboardItem: 0x1005a5cb0>
             PBType: : public.utf8-plain-text
                 String for type [public.utf8-plain-text] = 89958 characters
             PBType: : public.html
                 String for type [public.html] = 89969 characters
retValue: YES

だから私の問題は、これを SimpleText または BBEdit にドラッグしても、何もドロップしないことです。ターゲット ドキュメントのハイライトが表示されません。(注: ドラッグ イメージ ルーチンもあり、ドラッグ イメージが表示されます)

ペーストボードにデータを入力しているように見えるのに、他のアプリにドロップすることを拒否する理由はありますか?

4

1 に答える 1

3

AppleのサンプルプロジェクトSimpleBrowserをダウンロードして追加しました

[_browser setDraggingSourceOperationMask:NSDragOperationAll forLocal:NO];

awakeFromNibにあり、コードのほぼ一部を実装しており、TextEdit、Safari、Wordで動作します。これがサンプルコードです

于 2012-08-22T06:54:14.180 に答える