我有一个简单的1节NSCollectionView
并且变得疯狂,没有得到拖放工作。集合视图具有自定义集合视图项,其标签显示自定义对象的数据。一切都有效,直到拖动的项目应该在新位置之间掉落。但是当我拖动项目时,放置目的地没有掉落指示符(通常是间隙)。我发现下面的NSCollectionView
代表没有被调用。
func collectionView(_ collectionView: NSCollectionView, validateDrop draggingInfo: NSDraggingInfo,
proposedIndexPath proposedDropIndexPath: AutoreleasingUnsafeMutablePointer<NSIndexPath>,
dropOperation proposedDropOperation: UnsafeMutablePointer<NSCollectionViewDropOperation>) -> NSDragOperation {
print("validateDrop", proposedDropIndexPath) // never shows up in the console
if proposedDropOperation.pointee == NSCollectionViewDropOperation.on {
proposedDropOperation.pointee = NSCollectionViewDropOperation.before
}
print("validateDrop", proposedDropIndexPath)
return NSDragOperation.move
}
我有什么想念???谢谢!
编辑1
我只想使用拖放来允许重新排序集合视图中的项目。它不打算在集合视图中拖动外部内容。
您是否为拖动类型注册了集合视图?
collectionView.registerForDraggedTypes([NSPasteboard.PasteboardType])