我在我的一个应用程序中使用了优秀的NSOutlineView
子类PXSourceList
。我正在尝试实现拖放到我的PXSourceList
实例。我有:
- 将 IB 中的委托和数据源插座都连接到我的控制器
- 在
awakeFromNib
控制器中,将self设置为委托和数据源 - 在
awakeFromNib
控制器中,为拖拽类型注册 - 在控制器中,实现必要条件
writeItems: validateDrop: acceptDrop:
和namesOfPromisedFilesDroppedAtDestination:
方法,并在控制器的 .h 文件中声明它们
由于某种原因,(4)中实现的拖放方法根本没有触发。我试过了:
- 将日志语句放在拖放数据源方法中——它们永远不会被调用。
- 将日志语句放在记录实例的其他数据源方法之一中
registeredDraggedTypes
-PXSourceList
它始终返回分配的正确拖动类型awakeFromNib.
- 获取
PXSourceList
视图实例并将其从除 NSWindow 实例之外的所有包含视图中取消嵌入 - 那里也没有运气。 - 将我的应用程序中的数据源代码复制粘贴到随附的示例应用程序中
PXSourceList
- 无需修改即可全部运行。 - 将示例应用程序中的工作代码复制粘贴到 SK 源代码中 - 它不起作用。
所以基本上我在一个地方,除了拖放方法之外,所有数据源方法都被调用。它的行为就像我没有为拖动类型注册一样,但是 1)我知道我有 2)实例响应它已为我设置的拖动类型注册。
有任何想法吗?