2013-08-26 7 views
5

La mia app Mac dovrebbe consentire di trascinare e rilasciare kPasteboardTypeFileURLPromise per ottenere promesse di file da o verso il pasteboard.Errore durante la gestione di kPasteboardTypeFileURLPromise

Per quanto ho capito, ogni NSPasteboardItem dovrebbe avere kPasteboardTypeFileURLPromise nei suoi tipi disponibili.

A differenza degli NSURL gestiti dalla destinazione di trascinamento, kPasteboardTypeFileURLPromise vengono scritti dalla sorgente di trascinamento nella posizione di destinazione impostata dalla destinazione di trascinamento.

Tuttavia, quando la sorgente non riesce a soddisfare la promessa, sembra che non ci sia modo di passare la destinazione all'errore con le sue informazioni utente per il ripristino (ad esempio NSRecoveryAttempterErrorKey, ecc.).

Qual è la procedura migliore per la gestione degli errori durante il trascinamento di kPasteboardTypeFileURLPromise? Dovrebbero essere gestiti dalla sorgente di trascinamento?

Potrebbe causare alcune incoerenze rispetto agli NSURL trascinati per cui gli errori vengono gestiti dalla destinazione.

risposta

1

se u bisogno di copiare il file negli appunti, utilizzare questo:

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 
Problemi correlati