J'ai créé une table de vue contour qui montre mon disque (système de fichiers) hiérarchie similaire à cet exemple d'Apple:Comment puis-je faire glisser un dossier/élément de répertoire à partir d'un NSOutlineView à une application comme Finder ou Xcode
maintenant, je veux être en mesure de faire glisser des fichiers/dossiers de mon point de vue de grandes lignes à d'autres applications qui acceptent les gouttes comme Finder, Xcode, iTunes etc. ce sont les fonctions que je suis mise en œuvre pour ma source de données pour 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
}
}
Je reçois actuellement cette erreur sur la console
Looked for HFSPromises on the pasteboard, but found none.
Enfin, c'est une capture d'écran de ce que j'ai - NSOutlineView showing file system