Maison > Questions et réponses > le corps du texte
Faites glisser le fichier pour obtenir le chemin du fichier
// (id <NSDraggingInfo>)sender
NSURL *fileURL=[NSURL URLFromPasteboard: [sender draggingPasteboard]];
Récupérez l'URL et imprimez 2016-08-01 17:11:21.201 DragAndDrop[3504:170407] file:///.file/id=6571367.14796550. Au lieu d'un chemin de fichier au format /Users/jolie/Downloads.
阿神2017-05-02 09:30:28
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.