我在这里阅读了有关Outlineviews和DND的另一篇文章,但是我无法使我的程序正常工作。这篇文章的底部是我项目的zip链接。它非常基本,仅带有Outlineview和按钮。我希望它接收放在其上的文本文件,但是我的代码或连接出了点问题。我尝试按照Apple的NSOutline拖放示例代码进行操作,但是我丢失了一些内容。 1个区别是我的程序是基于文档的程序,而他们的示例不是。我将文件的所有者设置为接收委托操作,因为那是我处理拖放的代码以及按钮操作的位置。这可能是一个简单的错误,所以有人可以看看它并告诉我我在做什么错吗?
最佳答案
您实现的是表视图数据源的拖动-接收方法,而不是大纲视图数据源的拖动-接收方法。大纲视图是一种表格视图,但它仅使用大纲视图数据源协议;表视图数据源协议仅适用于表视图数据源,不适用于大纲视图数据源。
有关确切需要在数据源中实现的详细信息,请参见the NSOutlineViewDataSource
protocol。
需要注意的是:您需要在数据源(当前不是您的文档)中实现方法。我不知道你为什么那样做;通常,文档(主要充当控制器的角色)拥有模型,因此它应该是数据的视图源(数据源)。
我建议将OutlineDataSource类合并到MyDocument类中,然后将表视图的拖动接收方法更改为其对应的大纲视图。