我有一个NSCollectionView
已实施且工作良好。然而,当
拖动项目来重新排列它们,我只想接受拖动
物体之间。
当前的行为是您可以在对象之间拖动(它会打开一个
空间)而且over一个东西。我希望下面的图片能更好地说明问题。
例如,将项目拖到#2 上,会将其放在#2 之前。我想要
禁用此功能并仅接受其间的拖动。
在下面的图片中:
- 原来的状态
- 项目 #0 被拖动between#1 和#2
- 项目 #0 被拖动over#2(结果是一样的)
因此,经过更多研究后,我发现validadeDrop
方法有
准确描述操作是否结束或进行中的参数
之间。由于它是作为参考给出的,因此可以更改
参数来覆盖特定的行为。所以,解决方案是添加
这个检查方法:
- (NSDragOperation)
collectionView:(NSCollectionView *)collectionView
validateDrop:(id<NSDraggingInfo>)draggingInfo
proposedIndex:(NSInteger *)proposedDropIndex
dropOperation:(NSCollectionViewDropOperation *)proposedDropOperation
{
/* ... */
if (*proposedDropOperation == NSCollectionViewDropOn)
*proposedDropOperation = NSCollectionViewDropBefore;
/* ... */
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)