【发布时间】:2015-08-31 15:01:53
【问题描述】:
我有一个 NSCollectionView 实现并且工作正常。然而,当
拖动项目以重新排列它们,我只想接受拖动
对象之间。
当前的行为是您可以在对象之间拖动(它会打开一个 空间)但也在一个对象。我希望下面的图片能说得更好。 例如,将项目拖到#2 上会将其放在#2 之前。我想要 禁用此功能并仅接受两者之间的拖动。
在下面的图片中:
- 原始状态
- 项目#0 被拖到了在#1 和#2 之间
- Item #0 被拖到了 #2(结果一样)
【问题讨论】:
-
您的收藏视图有委托吗?
-
@Willeke 是的,当然。
-
你能在你拖动的地方显示你的代码吗,或者相关的东西
-
@anhtu 是的,但我不知道这是否有什么不同。它是标准拖放操作的非常通用和大的实现。我并不是在问如何解决问题,只是在问如何实施 :-) 您需要查看的任何特定部分?
-
为什么不通过单元格的索引(indexPath.row 或类似的东西)来检测它?或者使用
CGRectIntersectsRect,如果它与连续的> = 2个单元格相交,则接受。或者使用每个单元格的位置来检测之间,结束。我想你已经考虑过了。我只是想知道为什么不这样做?
标签: objective-c macos cocoa drag-and-drop nscollectionview