拖曳檔案取得檔案路徑
// (id <NSDraggingInfo>)sender
NSURL *fileURL=[NSURL URLFromPasteboard: [sender draggingPasteboard]];
取得URL,印製2016-08-01 17:11:21.201 DragAndDrop[3504:170407] file:///.file/id=6571367.14796550。而不是如/Users/jolie/Downloads格式的檔案路徑。
阿神2017-05-02 09:30:28
NSString *filePath = [fileURL path];
問題反思: 這個問題還是花了比較多的時間,我一開始的思路NSURL是從Pasteboard獲取,NSImage也可以透過Pasteboard進行初始化,所以想從Pasteboard獲取fileName,既然fileName是string類型,就想獲取NSString透過Pasteboard進行初始化,但並沒有找到,從蘋果API中有看到NSString遵循了NSPasteboardWriting, NSPasteboardReading協議,但並沒有提供相關的介面。
不過從github上拉下來的一個項目發現,問題的答案十分的簡單NSURL提供path獲取文件路徑。而問題之所以耗費了那麼多時間,只能說是對NSURL的API不熟悉。