我有一个实现NSSpringLoadingDestination协议的NSOutlineView的子类。
一切都很好。唯一的问题是当我尝试在已经展开的项目上拖动项目时,弹簧加载永远不会激活。
NSOutlineViewDelegateProtocol方法outlineView(_:shouldExpandItem :)返回true。
方法outlineView(_:validateDrop:proposedItem:proposedChildIndex :)返回有效的NSDragOperation。当我拖动它时,展开的项目会突出显示。
NSSpringLoadingDestination方法springLoadingUpdated(_ :)返回.enabled
但是SpringLoadingActivated(_:draggingInfo :)永远不会被调用。
奇怪的是,如果我在springLoadingUpdated( :)中执行某些操作,例如test isItemExpanded( :)并立即将其关闭,则弹出加载会按预期激活。但那不是解决方案。
非常感谢任何见解。
提前致谢。
答案 0 :(得分:0)
通过覆盖NSOutlineView
函数NSSpringLoadingDestination
以返回true,我能够获得springLoadingActivated(_:draggingInfo:)
的{{1}}来正确调用NSOutlineView
。
isExpandable