我使用 Apple 的示例“大纲视图”作为文件浏览器。我有一个 DataSource 和 FileSystemItem,就像 Apple 写的一样。我无法单击按住然后拖动文件名或文件夹名称。当我单击时, selectedRow 变为蓝色。正如我所持有的,什么也没有发生。如果我在按住时移动,蓝线会滚动文件列表。
我已经浏览了 Apple 的“Drag N Drop Outline View”代码,这不是我想要的。我不想重新排序文件并将它们从 OutlineView 中拖动。我想将文件名(最终是它的路径)拖到 NSTextfield。我无法让 NSOutlineView 注册拖动操作。
我已经将 NSOutlineView 子类化并尝试过:
- (void)awakeFromNib {
[_outlineView registerForDraggedTypes:[NSArray arrayWithObjects:LOCAL_REORDER_PASTEBOARD_TYPE, NSStringPboardType, NSFilenamesPboardType, nil]];
[_outlineView setDraggingSourceOperationMask:NSDragOperationEvery forLocal:YES];
}
以及 -(NSDragOperation)、draggingEntered、-(void)registerForDraggedTypes 等...
无需任何特殊代码即可将文本从 NSScrollView 拖动到此 NSTextField。显然一个 NSOutlineView 没有继承 NSScrollView 的原生拖动能力?
那么我怎样才能得到一个 NSOutlineView 来允许我拖动。同样,Apple 的 DragNDropOutlineView 做的比我想要的要多,没有做我想做的事,也没有帮助我弄清楚如何获得这种拖动能力。