【发布时间】:2010-08-27 15:41:10
【问题描述】:
我有一个 NSCollectionView,它被正确配置为根据 NSArrayController 中的内容显示核心数据实体。这些名为 MyManagedType 的核心数据实体被定义为包含一个 int32 索引号“indexNumber”以保持它们的有序性,以及二进制 NSData *myData。我也可以通过单击来选择项目,但我不能“单击并拖动”它们。我只需要能够一次选择一项(实际上最好)。
我通过将文件从 finder 拖放到 NSCollectionView 来填充 NSArrayController。它通过获取文件名来接受删除的文件。然后我打开文件,进行处理,填充 myData,获取一个新的 indexNumber(indexNumber = # of MyManagedType 实体在持久存储中),并将这个 NSManagedObject * 插入到我的持久存储中。效果很好。
我想添加的两件事,我迷路了。
1) 我希望能够在 NSCollectionView 中单击并抓取一个项目,将其拖到视图(或窗口)之外,然后将其放到“poof”它并让它从我的持久存储中删除。
2) 我希望能够在 NSCollectionView 中单击并抓取一个项目,将其拖到我的 NSCollectionView 中的另一个位置,然后放下它以重新排序我的 indexNumbers。
这里的主要绊脚石是我不明白要设置自己处理哪些拖放类型 - 在我现有的代码中它是文件名,但现在它是什么?我已经多次阅读类参考,并且了解很多方法的作用,但我无法理解如何实现 #1 和 #2。
【问题讨论】:
标签: cocoa