首页 文章

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

提问于
浏览
2

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

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

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

我花了一段时间才发现我必须 click and hold before dragging . 我已经可以看到我的应用程序的许多用户都不会想到这一点,并会抱怨拖动无法正常工作 .

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

有趣的是,Finder的"icon view"正如预期的那样工作(拖延工作毫不拖延) . 不确定它是否在底下使用 NSCollectionView ,但似乎很可能 .

2 回答

  • 0

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

  • 1

    你需要重写drag&drop方法 . 在苹果的网站上,drag&drop部分,至少在开始时有很多信息 .

相关问题