我有一个带有 NSOutlineView(仅支持单选)的程序,我希望能够从中拖动元素。这些元素应该以文本或文件的形式接收:例如,将项目放在 TextEdit 窗口上应该会放置文本,但将项目放在 Finder 上应该会创建一个文件。我不希望任何东西被丢弃在我的大纲视图上,即使它来自它本身。这似乎很容易,但由于某种原因,我无法让它工作。
我检查了 Apple 的 NSOutlineView 拖放示例,我开始实现以下方法(加上一些绝对不相关的方法):
-(BOOL)outlineView:shouldSelectItem: // I don't expect to drag unselectable items
-(NSArray*)outlineView:namesOfPromisedFilesDroppedAtDestination:forDraggedItems:
-(BOOL)outlineView:writeItems:toPasteboard:
但是,当我尝试从大纲视图中拖动一个项目时,什么也没有发生。相反,它只是更改光标后的选择。
我在最后两个方法中设置了断点,它们永远不会被调用,所以它们的实现不是当前的问题。
我必须在这里遗漏一些非常明显的东西。
此外,这(还)不是问题,但我应该如何为我承诺的文件提供内容?