NSOutlineView spring 加载扩展项
NSOutlineView spring load expanded item
我有一个 NSOutlineView 的子类实现了 NSSpringLoadingDestination 协议。
一切正常。唯一的问题是当我尝试将一个项目拖到一个已经展开的项目上时,spring 加载永远不会激活。
NSOutlineViewDelegateProtocol 方法 outlineView(_:shouldExpandItem:) returns true.
方法 outlineView(_:validateDrop:proposedItem:proposedChildIndex:) returns 一个有效的 NSDragOperation。当我拖过展开的项目时,它会突出显示。
和 NSSpringLoadingDestination 方法 springLoadingUpdated(_:) returns .enabled
但是 springLoadingActivated(_:draggingInfo:) 从未被调用。
奇怪的是,如果我在 springLoadingUpdated(:) 中做了一些事情,比如 test isItemExpanded(:) 并立即关闭它,spring loading 激活为预期的。但这不是解决方案。
如有任何见解,我们将不胜感激。
提前致谢。
通过将 NSOutlineView
函数 isExpandable
重写为 [=20],我能够得到一个 NSOutlineView
,即 NSSpringLoadingDestination
以正确调用 springLoadingActivated(_:draggingInfo:)
=] 是的。
override func isExpandable(_ item: Any?) -> Bool { return true }
我有一个 NSOutlineView 的子类实现了 NSSpringLoadingDestination 协议。
一切正常。唯一的问题是当我尝试将一个项目拖到一个已经展开的项目上时,spring 加载永远不会激活。
NSOutlineViewDelegateProtocol 方法 outlineView(_:shouldExpandItem:) returns true.
方法 outlineView(_:validateDrop:proposedItem:proposedChildIndex:) returns 一个有效的 NSDragOperation。当我拖过展开的项目时,它会突出显示。
和 NSSpringLoadingDestination 方法 springLoadingUpdated(_:) returns .enabled
但是 springLoadingActivated(_:draggingInfo:) 从未被调用。
奇怪的是,如果我在 springLoadingUpdated(:) 中做了一些事情,比如 test isItemExpanded(:) 并立即关闭它,spring loading 激活为预期的。但这不是解决方案。
如有任何见解,我们将不胜感激。
提前致谢。
通过将 NSOutlineView
函数 isExpandable
重写为 [=20],我能够得到一个 NSOutlineView
,即 NSSpringLoadingDestination
以正确调用 springLoadingActivated(_:draggingInfo:)
=] 是的。
override func isExpandable(_ item: Any?) -> Bool { return true }