NSOutlineView弹簧加载扩展项目

时间:2018-01-09 18:36:21

标签: nsoutlineview

我有一个实现NSSpringLoadingDestination协议的NSOutlineView的子类。

一切都很好。唯一的问题是当我尝试在已经展开的项目上拖动项目时,弹簧加载永远不会激活。

NSOutlineViewDelegateProtocol方法outlineView(_:shouldExpandItem :)返回true。

方法outlineView(_:validateDrop:proposedItem:proposedChildIndex :)返回有效的NSDragOperation。当我拖动它时,展开的项目会突出显示。

NSSpringLoadingDestination方法springLoadingUpdated(_ :)返回.enabled

但是SpringLoadingActivated(_:draggingInfo :)永远不会被调用。

奇怪的是,如果我在springLoadingUpdated( :)中执行某些操作,例如test isItemExpanded( :)并立即将其关闭,则弹出加载会按预期激活。但那不是解决方案。

非常感谢任何见解。

提前致谢。

1 个答案:

答案 0 :(得分:0)

通过覆盖NSOutlineView函数NSSpringLoadingDestination以返回true,我能够获得springLoadingActivated(_:draggingInfo:)的{​​{1}}来正确调用NSOutlineView

isExpandable