4

Finder からアプリ、NSTableView へのドラッグ アンド ドロップを実装し、linkドキュメントなどを作成しました。

しかし、NSTableViewからアイテムをドラッグして、この行をゴミ箱アイコンにドロップすることで削除操作を行いたいです。どうすればこれを正しく行うことができますか? ゴミ箱へのドロップを有効にする方法

4

2 に答える 2

7

(私がこれを行ってから長い時間が経ちました。記憶とドキュメントを一瞥して実行しています。これが機能しない場合はお知らせください。コードで再確認します。)

では、合法的な操作の 1 つとしてdraggingSession:sourceOperationMaskForDraggingContext:含める必要があります。NSDragOperationDeleteその後、アイテムがゴミ箱に落とされたことを示すためNSDragOperationDeleteにあなたに戻ってきます。draggingSession:endedAtPoint:operation:

于 2013-01-21T22:34:18.977 に答える
1

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()

  }
}
于 2019-09-11T12:45:35.567 に答える