2010-08-27 2 views
6

के भीतर खींचें और छोड़ें मेरे पास एक एनएससीओलेक्शन व्यू है जो एनएसएआरएआर कंट्रोलर में जो पाया गया है उसके आधार पर कोर डेटा इकाइयों को प्रदर्शित करने के लिए ठीक से कॉन्फ़िगर किया गया है। MyManagedType नामक इन कोर डेटा इकाइयों को उन्हें आदेश देने के लिए एक int32 अनुक्रमण संख्या "अनुक्रमणिका संख्या" शामिल करने के लिए परिभाषित किया गया है, और बाइनरी एनएसडीटा * myData। मैं उन्हें क्लिक करके आइटम भी चुन सकता हूं, लेकिन मैं उन्हें "क्लिक और ड्रैग" नहीं कर सकता। मुझे केवल एक समय में 1 आइटम चुनने में सक्षम होना चाहिए (वास्तव में बेहतर)।NSCollectionView

मैं NSCrrayController को NSCollectionView में खोजकर्ता से फ़ाइलों को खींच और छोड़कर पॉप्युलेट करता हूं। यह फ़ाइलों को अपने FILENAMES प्राप्त करके स्वीकार करता है। मैं फिर फ़ाइल खोलता हूं, अपनी प्रसंस्करण करता हूं, myData को पॉप्युलेट करता हूं, एक नया इंडेक्स नम्बर (इंडेक्स नम्बर = # निरंतर स्टोर में MyManagedType इकाइयों का) प्राप्त करें, और इस निरंतर स्टोर में इस NSManagedObject * को डालें। यह बहुत अच्छा काम करता है।

2 चीज़ें जो मैं जोड़ना चाहता हूं, मैं खो गया हूं।

1) मैं एनएससीओलेक्शन व्यू में किसी आइटम को क्लिक और पकड़ने में सक्षम होना चाहता हूं, इसे दृश्य (या विंडो) के बाहर खींचें, और इसे "poof" पर छोड़ दें और इसे मेरे लगातार स्टोर से हटा दें।

2) मैं एनएससीओलेक्शन व्यू में किसी आइटम को क्लिक और पकड़ने में सक्षम होना चाहता हूं, इसे अपने एनएससीओलेक्शन व्यू में किसी अन्य स्पॉट पर खींचें, और इसे मेरे इंडेक्स नर्स को पुन: व्यवस्थित करने के लिए छोड़ दें।

यहां मुख्य ठोकरें बिंदु मुझे समझ में नहीं आता है कि & ड्रॉप प्रकार को खींचने के लिए खुद को सेट अप करने के लिए - मेरे मौजूदा कोड के साथ यह फ़ाइल नाम है, लेकिन अब यह क्या है? मैंने कक्षा संदर्भ कई बार पढ़ा है और मैं समझता हूं कि कई तरीके क्या करते हैं, लेकिन मैं अपने सिर को लपेट नहीं सकता कि मैं # 1 और # 2 कैसे प्राप्त करता हूं।

उत्तर

1

मैं एक NSOutlineView पर ड्रैग और ड्रॉप करना चाहता था, और मुझे Jonathan Dann's source code अविश्वसनीय रूप से सहायक पाया गया।

आप इसे देखना चाहते हैं और एनएससीओलेक्शन व्यू के उपयोग के लिए इसे संशोधित करने का प्रयास कर सकते हैं।

+0

उन्होंने अपना ब्लॉग का पता बदल दिया। नया लिंक यहां रहता है: http://jonathandann.wordpress.com/2008/05/13/nstreecontroller-and-core-data-sorted/ – Dov

+0

धन्यवाद डॉव। लिंक अपडेट किया गया। –

0
एक मेज दृष्टि से

, देखने से ही डेटा के लिए खींचें प्रकार, अजीब तरह से है, एक मनमाना स्ट्रिंग आपके द्वारा सेट किए, इस तरह:

#define arbitraryDataTypeForInterRowDragging @"arbitraryDataTypeForInterRowDragging". 

तो फिर तुम इसे इस तरह acceptDrop प्रतिनिधि विधि में उपयोग :

NSData *rowData = [pboard dataForType:arbitraryDataTypeForInterRowDragging]; 

एनएससीओलेक्शन देखें प्रतिनिधि विधियां एक ही पैटर्न का पालन करने के लिए दिखाई देती हैं।