NSBrowser填充NSPasteboard,但不会丢弃
问题描述:
我有一个NSBroswer带有一系列查找文本blob的条目。如果斑点存在,则 - (BOOL)browser:canDragRowsWithIndexes:inColumn:withEvent:
返回YES。NSBrowser填充NSPasteboard,但不会丢弃
这将调用 - (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时,没有任何东西掉下来。我没有看到目标文件的亮点。 (注:我也有一个拖放图像例程,我看到拖动图像)
任何想法,为什么我似乎填充粘贴板,但它拒绝放弃在其他应用程序?
答
我通过Apple下载的示例项目SimpleBrowser,在awakeFromNib添加
[_browser setDraggingSourceOperationMask:NSDragOperationAll forLocal:NO];
和执行代码的几乎一部分,它与文字编辑时,Safari &字的作品。 下面是示例code
+0
是的,这只是解决了我的问题! – DouglasHeriot 2015-12-05 14:18:26
您的浏览器是否为这些类型调用'registerForDraggedTypes'? – unixo 2012-08-21 14:18:47
不,但是再次,我不想拖动(放置)浏览器,我想从浏览器拖放到(拖放)另一个应用程序。 – 2012-08-21 15:06:54
对不起,误会。顺便说一句,我下载了示例项目SimpleBrowser,添加了'[_browser setDraggingSourceOperationMask:NSDragOperationAll forLocal:NO];'在awakeFromNib中,并且实现了几乎部分代码,它可以与TextEdit,Safari和Word一起工作 – unixo 2012-08-21 15:52:36