拖动TableView行

时间:2018-03-02 12:11:01

标签: cocoa

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:回归默认白名单

1 个答案:

答案 0 :(得分:0)

我错过了将表格视图注册到可以拖动的特定允许类型的对象。找到解决方案here

tableView.registerForDraggedTypes([NSPasteboard.PasteboardType("public.data")])