2013-08-26 8 views
5

Приложение для Mac должно позволить перетаскивать kPasteboardTypeFileURLPromise, чтобы получить обещания файла от или до картона.Обработка ошибок при сохранении kPasteboardTypeFileURLPromise

Насколько я понимаю, каждый NSPasteboardItem должен иметь kPasteboardTypeFileURLPromise в своих доступных типах.

В отличие от NSURL, которые обрабатываются адресатом перетаскивания, kPasteboardTypeFileURLPromise записывается источником перетаскивания в место назначения, заданное адресатом перетаскивания.

Однако, когда источник не выполняет обещание, кажется, что нет способа передать адресату ошибку с ее информацией о пользователе для восстановления (например, NSRecoveryAttempterErrorKey и т. Д.).

Какова наилучшая практика для обработки ошибок при перетаскивании kPasteboardTypeFileURLPromise? Должны ли они обрабатываться источником перетаскивания?

Это может вызвать некоторую несогласованность по сравнению с перетаскиваемыми NSURL, для которых ошибки обрабатываются адресатом.

ответ

1

если и нужно, чтобы скопировать файл в буфер обмена, используйте:

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 

 Смежные вопросы

  • Нет связанных вопросов^_^