NSTableView拖动冻结停靠

问题描述 投票:0回答:1

当我在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本身,这似乎工作得很好。

Demo GIF

drag-and-drop nstableview appkit
1个回答
1
投票

当应用程序外部无法删除的项目被拖过Dock时,Dock的动画会冻结。呼叫

func setDraggingSourceOperationMask(_ mask: NSDragOperation, forLocal isLocal: Bool)

forLocalfalse使项目可以在应用程序外部删除。

© www.soinside.com 2019 - 2024. All rights reserved.