【问题标题】:NSBrowser fills NSPasteboard but won't dropNSBrowser 填充 NSPasteboard 但不会丢弃
【发布时间】:2012-08-15 22:32:22
【问题描述】:

我有一个 NSBroswer,其中包含一系列查找文本 blob 的条目。如果 blob 存在,则 - (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 时,什么都没有。我没有看到目标文档的亮点。 (注:我也有拖图例程,看到拖图了)

任何想法为什么我似乎正在填充粘贴板但它拒绝放入其他应用程序?

【问题讨论】:

  • 您的浏览器是否为这些类型调用registerForDraggedTypes
  • 不,但话又说回来,我不想拖动到(放置)浏览器,我想从浏览器拖动到(放置)另一个应用程序。
  • 抱歉造成误会。顺便说一句,我下载了示例项目 SimpleBrowser,在 awakeFromNib 中添加了 [_browser setDraggingSourceOperationMask:NSDragOperationAll forLocal:NO]; 并实现了几乎部分代码,它适用于 TextEdit、Safari 和 Word
  • 这是source code
  • 这确实解决了这个问题。请输入此作为答案,以便您获得赏金。

标签: cocoa drag-and-drop nspasteboard nsbrowser


【解决方案1】:

我下载了Apple的示例项目SimpleBrowser,添加了

[_browser setDraggingSourceOperationMask:NSDragOperationAll forLocal:NO];

在 awakeFromNib 中并实现了几乎部分代码,它适用于 TextEdit、Safari 和 Word。 这是示例code

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 2021-12-13
    • 1970-01-01
    • 2017-04-12
    • 2012-09-21
    • 1970-01-01
    相关资源
    最近更新 更多