我有一个NSCollectionView,它显示一些文件:
我想要的是...
- 能够选择一个文件。
- 能够将此文件拖放到桌面或另一个 Finder 窗口中。
文件图标由 NSImageView 显示。
提供此类功能的好方法是什么?
非常感谢!
我有一个NSCollectionView,它显示一些文件:
我想要的是...
文件图标由 NSImageView 显示。
提供此类功能的好方法是什么?
非常感谢!
您需要调用declareTypes:owner:
集合视图并传入您希望能够拖动的粘贴板类型。在您的情况下,您想要NSURLPboardType
.
然后,您需要做的就是在您的委托中实现三个与拖动相关的NSCollectionView
委托方法。
您应该YES
从此方法返回:
collectionView:canDragItemsAtIndexes:withEvent:
您可以使用此方法为每个项目返回自定义拖动图像:
collectionView:draggingImageForItemsAtIndexes:withEvent:offset:
然后使用以下方法将项目写入粘贴板:
collectionView:writeItemsAtIndexes:toPasteboard:
在您的情况下,您将在此方法的实现中将拖动项目的 URL 写入粘贴板。
如果您不了解如何使用粘贴板,您应该阅读指南拖放编程主题。