我已经实现了从 Finder 拖放到我的应用程序到 NSTableView,并创建link
了文档等。
但是,我想通过将项目从 NSTableView 拖放到垃圾图标上来进行删除操作。我怎样才能正确地做到这一点?如何启用丢弃到垃圾箱?
我已经实现了从 Finder 拖放到我的应用程序到 NSTableView,并创建link
了文档等。
但是,我想通过将项目从 NSTableView 拖放到垃圾图标上来进行删除操作。我怎样才能正确地做到这一点?如何启用丢弃到垃圾箱?
(我已经很长时间没有这样做了,我是从记忆中做的,然后看一下文档。如果这不起作用,请告诉我,我会仔细检查代码。)
在draggingSession:sourceOperationMaskForDraggingContext:
你应该包括NSDragOperationDelete
作为合法操作之一。然后,您将收到NSDragOperationDelete
回信,draggingSession:endedAtPoint:operation:
表明该项目已被丢弃在垃圾箱中。
使用 dropSessionDidEnd 委托方法。在那里您可以获得放置点的位置,并且不需要另一个 UICollectionView/UITableView :
func collectionView(_ collectionView: UICollectionView, dropSessionDidEnd session: UIDropSession) {
guard let item = session.items.first?.localObject as? YourObject else {
return
}
let dropLocation = session.location(in: self.view)
let itemDropedInTrash = TrashImageView.frame.contains(dropLocation)
if itemDropedInTrash {
//here update your datasource and reload your collectioView/tableView
//deleteItemFromDataSource(item: item)
//collectionView.reloadData()
}
}