2013-08-26 9 views
5

Aplikacja Mój komputer Mac powinna umożliwiać przeciąganie i upuszczanie elementu kPasteboardTypeFileURLPromise w celu uzyskania obietnic pliku z lub na stół montażowy.Obsługa błędów podczas przechowywania pliku kPasteboardTypeFileURLPromise

O ile rozumiem, każdy element NSPasteboardItem powinien mieć kPasteboardTypeFileURLPromise w dostępnych typach.

W przeciwieństwie do NSURL, które są obsługiwane przez miejsce docelowe przeciągania, kPasteboardTypeFileURLPromise są zapisywane przez przeciągające źródło do docelowej lokalizacji ustawionej przez miejsce docelowe przeciągania.

Jednak, gdy źródło nie spełnia obietnicy, wydaje się, że nie ma możliwości przekazania adresu docelowego błędu zawierającego informacje o użytkowniku do odzyskania (np. NSRecoveryAttempterErrorKey itp.).

Jak najlepiej radzić sobie z błędami podczas przeciągania kPasteboardTypeFileURLPromise? Czy powinny być obsługiwane przez źródło przeciągania?

Może to spowodować pewne niespójności w porównaniu do przeciągniętych NSURL, dla których błędy są obsługiwane przez miejsce docelowe.

Odpowiedz

1

jeśli u trzeba skopiować plik do schowka, użyj tego:

NSPasteboard *pasteBoard = [NSPasteboard generalPasteboard]; 
[pasteBoard declareTypes:[NSArray arrayWithObjects:NSStringPboardType, NSFilenamesPboardType, nil] owner:nil]; 
[pasteBoard setString:self.fullpath forType:NSStringPboardType];    // copy file path as string 
[pasteBoard setPropertyList:@[self.fullpath] forType:NSFilenamesPboardType]; // copy file link