Я пытаюсь переместить NSCollectionViewItem
в пределах того же NSCollectionView
, чтобы разрешить переупорядочивание элементов. Элемент представления коллекции - это настраиваемый элемент, представляющий несколько меток со строками из настраиваемого объекта Parameter
:
class Parameter: NSObject {
var parameterName: String
var parameterNominal: Double
var parameterUpperTolerance: Double
var parameterLowerTolerance: Double
var parameterDistribution: String
var parameterNotes: String
var parameterDataArray: [Double]
// MARK: - Initialization Methods
...
}
Теперь мне нужно записать весь элемент / объект в «NSPasteboard», чтобы правильно использовать перетаскивание в NSCollectionView
? Большинство примеров перетаскивания работают с записью строк на монтажный стол с использованием ....register(forDraggedTypes: [NSPasteboardTypeString])
.
В настоящее время я записываю одну из строк элементов в монтажный стол, и перетаскивание начинается нормально:
func collectionView(_ collectionView: NSCollectionView, pasteboardWriterForItemAt indexPath: IndexPath) -> NSPasteboardWriting? {
let pb = NSPasteboardItem()
pb.setString(ParameterList.sharedInstance.parameters[indexPath.item].parameterName, forType: NSPasteboardTypeString)
return pb
}
... но кажется странным записывать на монтажный стол только часть объекта, когда требуется перемещение всего объекта, не так ли?
Как я могу на самом деле записать свой объект параметра на монтажный стол (при необходимости)?
Что происходит за сценой с данными на монтажном столе при использовании перетаскивания?
Большое спасибо!