मैं सोच रहा हूँ कि कैसे एक के बाद एक Xcode 3 की तरह एक रूपरेखा दृश्य लागू करेगा प्रति के साथ निर्माण विन्यास के लिए उपयोग कर रहा है:कार्यान्वयन NSOutlineView/NSTableView विभिन्न कोशिकाओं (और डेटा प्रकार) पंक्ति
alt text http://img812.imageshack.us/img812/9467/xcodeoutlineview.png
जब बाइंडिंग और एनएसटीरी कंट्रोलर/एनएसएआरएआर कंट्रोलर के साथ एक NSOutlineView/NSTableView का उपयोग करके, दृश्य के कॉलम को निर्दिष्ट कारणों से अलग-अलग कक्षों के लिए निर्दिष्ट बाइंडिंग प्राप्त करते हैं। यदि कॉलम में प्रत्येक पंक्ति एक ही सेल का उपयोग करती है, तो यह केक का एक टुकड़ा है। हालांकि अगर प्रत्येक पंक्ति (संभावित रूप से) अपने सेल प्रकार (और संभावित रूप से इसके स्वयं के बाइंडिंग का संग्रह) का उपयोग करती है, तो चीजें फंकी हो जाती हैं।
स्क्रीनशॉट को देखते हुए कोई स्पष्ट रूप से देख सकता है कि टेक्स्टफील्ड सेल को "मूल्य" के लिए केवल एक बाध्यकारी की आवश्यकता है। पॉपअप बटन सेल कम से कम एक "सामग्री" के लिए की जरूरत है, वहीं "contentValues " और पिछले नहीं बल्कि कम से कम एक के लिए "SelectedIndex/selectedObject/selectedValue" बाइंडिंग के लिए एक। और चेकबॉक्स सेल को "मान" और (शायद) "शीर्षक" के लिए बाध्यकारी की आवश्यकता है।
कोई इसे यथासंभव स्वच्छ (और छोटा) कोड के साथ कैसे पूरा करेगा?
(या एक पूछ सकते हैं के रूप में:कैसे एप्पल यह किया होता?)
...
यहाँ क्या मैं अपने आप को कोशिश की है अब तक:
मैं उपयुक्त (नकल की) कोशिकाएं उपलब्ध के माध्यम से [रूपरेखा देखें: डेटासेलफॉरटेबल कॉलम: आइटम:] और उन्हें व्यक्तिगत डेटा मॉडल ([आइटम प्रतिनिधित्व ऑब्जेक्ट] से) से बांधें। मुझे पता है कि आउटलाइन व्यू में डेटा की सटीक मात्रा (< 500 पंक्तियां) प्रदर्शित की जा रही हैं, इसलिए प्रति पंक्ति एक सेल होने से स्मृति समस्या बहुत अधिक नहीं होनी चाहिए, नहीं? मुझे डेटा को ठीक से प्रदर्शित करने के लिए बाइंडिंग (yay!) के माध्यम से मिला है, हालांकि मैं उनके किसी भी मूल्य को बदलने में असमर्थ हूं। O_o स्पष्ट रूप से मूल्य परिवर्तन डेटा मॉडल के माध्यम से कभी नहीं मिलता है। क्या यह सरल से अधिक है [चेकबॉक्ससेल बाइंड: @ "वैल्यू" टू ऑब्जेक्ट: पंक्ति मॉडल के साथ कीपैथ: @ "वैल्यू" विकल्प: शून्य]? (के रूप में इस पर्याप्तके लिए हो रही मूल्यों लगता है, लेकिन के लिए नहीं तदनुसार स्थापित करने उन्हें।)
मैं इस विषय पर कोई जानकारी प्राप्त नहीं कर सकता है। प्रति कॉलम कस्टम सेल का उपयोग करने के लिए बहुत सारी जानकारी और संकेत, लेकिन "प्रति पंक्ति" आधार पर उनका उपयोग करने के लिए कोई भी नहीं। :(
यह कोको ट्यूटोरियल के लिए कुछ बेहतरीन चीजें बनाएगा, है ना?;
NSDictionaryController भी है। यह नहीं पता कि यह आपको इस दिशा में कितना दूर करेगा, लेकिन एक नज़र डालें। –
@ माइक यह नियंत्रक की इतनी समस्या नहीं है, लेकिन तालिका कक्षों में से एक इसकी कोशिकाओं को संभालने में सक्षम है। लेकिन वैसे भी धन्यवाद :) – Regexident
लगभग 5 साल बाद और यह एकमात्र जानकारी थी जो मुझे अलग-अलग कोशिकाओं के साथ एक टेबल पर डेटा स्रोत के साथ बाध्यकारी मिश्रण के बारे में मिल सकती थी, "यह कोको ट्यूटोरियल के लिए कुछ बेहतरीन चीजें बनाती है, है ना?" , धत्त हां! – rraallvv