在启用多个选择时拖动之前NSCollectionView恼人的延迟

时间:2012-06-20 13:05:03

标签: cocoa drag-and-drop nscollectionview

我有一个基本的Cocoa应用程序,NSCollectionView显示了许多文件。集合视图允许一次选择多个项目。

问题是,为了选择两个或多个项目将它们拖出集合视图,我必须单击并按住约一秒钟才能开始拖动。

如果我立即点击并拖动,集合视图会改变选择(即绘制“选择”矩形)。

我花了一段时间才弄清楚我必须在拖动之前点击并按住。我已经可以看到我的应用程序的许多用户都不会想到这一点,并会抱怨拖动无法正常工作。

示例:即使在Apple的示例代码中存在问题:https://developer.apple.com/library/mac/#samplecode/IconCollection/Introduction/Intro.html#//apple_ref/doc/uid/DTS10004477

有趣的是,Finder的“图标视图”正如预期的那样工作(拖延工作毫不拖延)。不确定它是否使用了NSCollectionView,但似乎很可能。

2 个答案:

答案 0 :(得分:1)

没有办法解决这个问题。在NSCollectionView中重写所有鼠标事件。您唯一可以控制的是集合中包含的NSView的mouseDown事件,这对拖动延迟没有帮助。

答案 1 :(得分:0)

我猜你需要重写drag&drop方法。在苹果的网站drag&drop部分,至少有一些信息,至少是为了开始。