当我在Dock上拖动NSTableView(基于视图)项时,Dock停止了。即它在进入Dock区域时会产生精灵效果,但之后就会卡住。
我实施了:
func tableView(_ tv: NSTableView, pasteboardWriterForRow row: Int)
-> NSPasteboardWriting?
为了使行可拖动,它返回一个自己的NSObject实现NSPasteboardWriting,没什么特别的(声明一个字符串和一个自定义类型)。
D&D在应用程序中也运行良好。当它开始失败时,它只适用于外部拖动。
问:我知道我可能做错了吗? :-)
示例代码:https://gist.github.com/helje5/48728983951ab3362af43b967c554475
P.S。:我也有一个自定义视图实现NSDraggingSource
本身,这似乎工作得很好。
当应用程序外部无法删除的项目被拖过Dock时,Dock的动画会冻结。呼叫
func setDraggingSourceOperationMask(_ mask: NSDragOperation, forLocal isLocal: Bool)
与forLocal
是false
使项目可以在应用程序外部删除。