यह एक बार आप इसे समझने के लिए मिलता है, वास्तव में बहुत सरल है के आधार पर अपने सरणी का उपयोग करने के लिए उन प्रतिनिधि तरीकों का उपयोग (जाहिर है!)। आप तालिका स्रोत के रूप में सीधे एनएसएआरएआरई का उपयोग नहीं कर सकते हैं। आपको या तो एक कस्टम ऑब्जेक्ट बनाना होगा जो NSTableViewDataSource लागू करता है या उस मौजूदा प्रोटोकॉल में प्रोटोकॉल को लागू करता है - आमतौर पर एक नियंत्रक। यदि आप एक मानक दस्तावेज़ आधारित अनुप्रयोग बनाने के लिए एक्सकोड का उपयोग करते हैं, तो दस्तावेज़ नियंत्रक वर्ग - (इसे MyDocument कहा जाएगा) उपयोग करने के लिए एक अच्छी कक्षा है।
आपको कम से कम इन दोनों तरीकों को लागू करने की जरूरत है:
– numberOfRowsInTableView:
– tableView:objectValueForTableColumn:row:
आप एक परिवर्तनशील सरणी जिनके मान आप एक स्तंभ, की तरह कुछ के साथ एक तालिका दृश्य में उपयोग करने के लिए चाहते हैं, तो के रूप में करना चाहिए निम्नलिखित एक शुरुआत:
– numberOfRowsInTableView: (NSTableView*) aTableView
{
return [myMutableArray count];
}
– tableView: (NSTableView*) aTableView objectValueForTableColumn: (NSTableColumn *)aTableColum row: (NSInteger)rowIndex
{
return [myMutableArray objectAtIndex: rowIndex];
}
यह सिर्फ मेरे लिए हुआ है आप NSArray self
साथ myMutableArray
की जगह के लिए एक वर्ग के रूप में ऊपर दो तरीकों जोड़ सकते हैं और फिर आप डेटा स्रोत के रूप एक सरणी का उपयोग कर सकते हैं।
वैसे भी, एक अस्थायी सरणी के साथ, यह महत्वपूर्ण है कि किसी भी समय आप इसे बदल, आप तालिका दृश्य जाने के लिए पता है कि यह बदल दिया गया है, ताकि आप तालिका दृश्य -reloadData
भेजने की जरूरत की जरूरत है।
अपने तालिका दृश्य एक से अधिक स्तंभ है और आप अपने सरणी में वस्तुओं के गुणों से पॉप्युलेट करना चाहते हैं, वहाँ एक चाल आप इसे खुद के लिए आसान बनाने के लिए क्या कर सकते हैं।मान लें कि आपका सरणी में वस्तुओं एक वर्ग दो तरीकों के साथ व्यक्ति कहा जाता है के उदाहरण परिभाषित कर रहे हैं करते हैं:
-(NSString*) givenName;
-(NSString*) familyName;
और आप अपने तालिका दृश्य उन में से प्रत्येक के लिए एक कॉलम करना चाहते हैं, तो आप प्रत्येक स्तंभ के identifier
संपत्ति सेट कर सकते हैं
– tableView: (NSTableView*) aTableView objectValueForTableColumn: (NSTableColumn *)aTableColum row: (NSInteger)rowIndex
{
Person* item = [myMutableArray objectAtIndex: rowIndex];
return [item valueForKey: [tableColumn identifier]];
}
आप valueForKeyPath:
साथ valueForKey:
की जगह और अपने व्यक्ति वर्ग भी निम्न विधियों है:
व्यक्ति में संपत्ति के नाम पर उस कॉलम प्रदर्शित करता है और निम्नलिखित की तरह कुछ का उपयोग करने के
-(Person*) mother;
-(Person*) father;
-(NSString*) fullName; // concatenation of given name and family name
आप पहचानकर्ताओं के साथ तालिका कॉलम जोड़ सकते हैं जैसे: father.fullName
या mother.familyName
और मान स्वचालित रूप से पॉप्युलेट हो जाएंगे।
यह लिंक काम नहीं करता !! कृपया इसे अपडेट करें! – elin3t