我有一个NSCollectionView,它已根据NSArrayController中的内容正确配置为显示Core Data Entities。这些名为MyManagedType的核心数据实体定义为包括一个int32索引号“indexNumber”以保持它们的有序性,以及二进制NSData * myData。我也可以通过单击来选择项目,但不能“单击并拖动”它们。我只需要一次选择一项(实际上是首选)。

我通过将文件从finder中拖放到NSCollectionView中来填充NSArrayController。它通过获取文件名来接受已删除的文件。然后,我打开文件,进行处理,填充myData,获取新的indexNumber(indexNumber =持久性存储中MyManagedType实体的#个),然后将此NSManagedObject *插入到我的持久性存储中。效果很好。

我想添加的两件事,我迷路了。

1)我希望能够在NSCollectionView中单击并捕获一个项目,将其拖到 View (或窗口)之外,然后将其拖放到“poof”它,并使其从我的持久性存储中删除。

2)我希望能够单击并捕获NSCollectionView中的项目,将其拖动到我的NSCollectionView中的另一个点上,并将其拖放以对indexNumbers重新排序。

这里的主要绊脚石是我不知道要设置哪种拖放类型来处理自己-用我现有的代码是文件名,但是现在是什么?我已经阅读了几次类引用,并且了解很多方法的作用,但是我只是不知道如何实现#1和#2。

最佳答案

我想在NSOutlineView上进行拖放操作,发现Jonathan Dann's source code非常有用。

您可能想 checkout 并尝试对其进行修改以与NSCollectionView一起使用。

关于cocoa - 在NSCollectionView中拖放,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3585820/

10-12 14:46