3

我有一个NSCollectionView,它显示一些文件: 在此处输入图像描述

我想要的是...

  1. 能够选择一个文件。
  2. 能够将此文件拖放到桌面或另一个 Finder 窗口中。

文件图标由 NSImageView 显示。

提供此类功能的好方法是什么?

非常感谢!

4

1 回答 1

2

您需要调用declareTypes:owner:集合视图并传入您希望能够拖动的粘贴板类型。在您的情况下,您想要NSURLPboardType.

然后,您需要做的就是在您的委托中实现三个与拖动相关的NSCollectionView委托方法

您应该YES从此方法返回:

collectionView:canDragItemsAtIndexes:withEvent:

您可以使用此方法为每个项目返回自定义拖动图像:

collectionView:draggingImageForItemsAtIndexes:withEvent:offset:

然后使用以下方法将项目写入粘贴板:

collectionView:writeItemsAtIndexes:toPasteboard:

在您的情况下,您将在此方法的实现中将拖动项目的 URL 写入粘贴板。

如果您不了解如何使用粘贴板,您应该阅读指南拖放编程主题

于 2012-03-19T00:05:28.543 回答