2013-08-26 15 views
5

मेरा मैक ऐप को केपस्टबोर्ड टाइपइपफ्लर को खींचने और छोड़ने की अनुमति देनी चाहिए ताकि फाइल से वादे या पेस्टबोर्ड प्राप्त हो सके।KPasteboardTypeFileURL को बनाए रखने में त्रुटि प्रबंधन

जहां तक ​​मैं समझता हूं, प्रत्येक NSPasteboardItem के पास उपलब्ध प्रकारों में kPasteboardTypeFileURL समझौता होना चाहिए।

खींचने वाले गंतव्य द्वारा प्रबंधित किए गए NSURLs के विपरीत, kPasteboardTypeFileURL समझौता ड्रैगिंग गंतव्य द्वारा निर्धारित गंतव्य स्थान पर ड्रैगिंग स्रोत द्वारा लिखा जाता है।

हालांकि, जब स्रोत वादे को पूरा करने में विफल रहता है, ऐसा लगता है कि गंतव्य को पुनर्प्राप्ति के लिए उपयोगकर्ता की जानकारी के साथ त्रुटि को पारित करने का कोई तरीका नहीं है (उदा। NSRecoveryAttempterErrorKey, आदि)।

kPasteboardTypeFileURL समझौता खींचते समय त्रुटियों को संभालने का सबसे अच्छा अभ्यास क्या है? क्या उन्हें ड्रैगिंग स्रोत द्वारा संभाला जाना चाहिए?

यह ड्रैग किए गए NSURLs की तुलना में कुछ असंगतता का कारण बन सकता है जिसके लिए गंतव्य द्वारा त्रुटियों को नियंत्रित किया जाता है।

उत्तर

1

यदि u क्लिपबोर्ड में फाइल कॉपी करने की जरूरत है, इस का उपयोग करें:

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 
संबंधित मुद्दे