Я строю NSOutlineView с помощью Swift. У меня есть вид на месте, и теперь я начинаю перетаскивать, чтобы перемещать объекты вокруг в представлении. Я использую This в качестве отправной точки. Я перетащил работу, нажимаю и перетаскиваю контур, но я не могу заставить работу над кадром работать; Я не вижу горизонтального маркера, и я получаю только звуковой сигнал, когда я падаю. Мне не хватает чего-то очевидного, но я не могу, чтобы жизнь меня видела.Swift: перетаскивание в NSOutlineView
Это мой d & d код из моего NSOutlineViewDelegate:
func outlineView(_ outlineView: NSOutlineView, pasteboardWriterForItem item: Any) -> NSPasteboardWriting? {
let pp = NSPasteboardItem()
// working as expected here
if let fi = item as? FileItem {
pp.setString(fi.Path, forType: "public.text")
print("pb write \(fi.Name)")
} else {
print("pb write, not a file item \(item)")
}
return pp
}
func outlineView(_ outlineView: NSOutlineView, validateDrop info: NSDraggingInfo, proposedItem item: Any?, proposedChildIndex index: Int) -> NSDragOperation {
print("validate: \(item)")
return NSDragOperation.move
//
}
func outlineView(_ outlineView: NSOutlineView, acceptDrop info: NSDraggingInfo, item: Any?, childIndex index: Int) -> Bool {
print("accept drop: \(item)")
return true
}
И я зарегистрировал для типов сопротивления в ViewDidLoad():
OutlineViewOutlet.register(forDraggedTypes: ["public.txt"])
Любые мысли оценили, спасибо.