objective-c - OS X下拖拉文件如何获取文件路径
迷茫
迷茫 2017-05-02 09:28:28
0
1
527

拖拉文件获取文件路径

// (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格式的文件路径。

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(1)
阿神
NSString *filePath = [fileURL path];

Réflexion sur le problème : ce problème a encore pris beaucoup de temps. Mon idée initiale était d'obtenir NSURL à partir de Pasteboard. NSImage peut également être initialisé via Pasteboard, donc je voulais obtenir fileName à partir de Pasteboard. , j'ai pensé Obtenir NSString et l'initialiser via Pasteboard, mais il n'a pas été trouvé À partir de l'API Apple, nous pouvons voir que NSString suit les protocoles NSPasteboardWriting et NSPasteboardReading, mais ne fournit pas d'interfaces pertinentes.
Cependant, un projet extrait de github a révélé que la réponse au problème est très simple. NSURL fournit le chemin pour obtenir le chemin du fichier. La raison pour laquelle le problème a pris autant de temps ne peut être considérée que parce que je ne suis pas familier avec l'API NSURL.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal