ValidateDrop方法无效。
func tableView(_ tableView: NSTableView, writeRowsWith rowIndexes: IndexSet, to pboard: NSPasteboard) -> Bool {
let data = NSKeyedArchiver.archivedData(withRootObject: rowIndexes)
pboard.declareTypes([NSPasteboard.PasteboardType(rawValue: "public.data")], owner: self)
pboard.setData(data, forType: NSPasteboard.PasteboardType(rawValue: "public.data"))
print("WriteRows")
return true
}
func tableView(_ tableView: NSTableView, validateDrop info: NSDraggingInfo, proposedRow row: Int, proposedDropOperation dropOperation: NSTableView.DropOperation) -> NSDragOperation {
if dropOperation == .above {
return .move
}
print("acceptDrop")
return []
}
" WriteRows"已打印但已经过验证但无法正常工作且无法打印。
首次尝试拖动时会打印此消息。
2018-03-02 12:55:05.785644 + 0100 Plantilla [37119:1093734] MessageTracer:load_domain_whitelist_search_tree:73:不支持搜索树文件的格式版本号(0)
2018-03-02 12:55:05.785702 + 0100 Plantilla [37119:1093734] MessageTracer:回归默认白名单
答案 0 :(得分:0)
我错过了将表格视图注册到可以拖动的特定允许类型的对象。找到解决方案here:
tableView.registerForDraggedTypes([NSPasteboard.PasteboardType("public.data")])