Я создал таблицу контурный вид, который показывает мой диск (файловая система) иерархия похожа на данном примере от Apple:Как я могу перетащить элемент папку/директорию из NSOutlineView в приложение, как Finder или Xcode
Теперь я хочу, чтобы иметь возможность перетаскивать файлы/папки с моей точкой зрения набросков к другим приложениям, которые принимают капли, такие как Finder, Xcode, ITunes и т.д. Эти функции, которые я реализующая для моего источника данных для NSOu
let pb: NSPasteboard?
func outlineView(outlineView: NSOutlineView, writeItems items: [AnyObject], toPasteboard pasteboard: NSPasteboard) -> Bool {
var array = [NSURL]()
self.pb?.declareTypes([NSFilesPromisePboardType], owner: self)
if let fileItem = items[0] as? FileSystemItem {
let fileURL = NSURL(fileURLWithPath: fileItem.getFullPath()!)
array.append(fileURL)
self.pb?.addTypes([fileURL.pathExtension!], owner: nil)
self.pb?.writeObjects(array)
return true
}else {
return false
}
}
func outlineView(outlineView: NSOutlineView, namesOfPromisedFilesDroppedAtDestination dropDestination: NSURL, forDraggedItems items: [AnyObject]) -> [String] {
var names = [String]()
if let fileItem = items[0] as? FileSystemItem {
print(fileItem.getRelativePath())
names.append(fileItem.getRelativePath()!)
return names
}else {
return names
}
}
В настоящее время я получаю эту ошибку в консоли
Looked for HFSPromises on the pasteboard, but found none.
Наконец это скриншот того, что у меня есть - NSOutlineView showing file system