当我将NSTableView(基于视图)项拖到扩展坞上时,扩展坞冻结。即进入Dock区域时会产生精灵效果,但是卡住了。
我已经实现:
func tableView(_ tv: NSTableView, pasteboardWriterForRow row: Int)
-> NSPasteboardWriting?
为了使行可拖动,它返回一个实现NSPasteboardWriting的NSObject,实际上没有什么特别的(声明一个字符串和一个自定义类型)。
D&D在该应用程序中也可以正常工作。当它开始失效时,它仅用于外部阻力。
问:知道我做错了什么吗? :-)
示例代码:https://gist.github.com/helje5/48728983951ab3362af43b967c554475
P.S .:我也有一个自定义视图,实现了NSDraggingSource
本身,这似乎很好用。
答案 0 :(得分:1)
将无法拖放到应用程序外部的项目拖到Dock上时,Dock的动画将冻结。致电
func setDraggingSourceOperationMask(_ mask: NSDragOperation, forLocal isLocal: Bool)
带有forLocal
的是false
,以使该项目可投放到应用程序外部。