2012-09-23 18 views
6

viewForTableColumn एक दृश्य के आधार पर तालिका यह <strong>viewForTableColumn</strong> के बजाय <strong>objectValueForTableColumn</strong> समारोह बुला रहता बनाने का प्रयास करते जबकि चलाया जाता है (लेकिन objectValueForTableColumn है)

मैंने तालिका दृश्य को अपनी सेटिंग्स में "देखने के आधार पर" सेट किया है। लेकिन फिर भी मैं इसे सही कार्य नहीं कर सकता। मैंने सेब उदाहरण (टेबलव्यूप्लेग्राउंड) के कार्यान्वयन को देखा है और कुछ बिंदुओं पर भी आईबी और कार्यों को चिपकाया है, फिर भी कोई प्रगति नहीं है।

प्रासंगिक कोड:

// Should run 
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row 
{  
    return nil; 
} 

// Gets run 
-(id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row 
{ 
    return nil; 
} 

दो चित्र, यकीन नहीं कितने उपयोगी वे कर रहे हैं, लेकिन अभी भी। http://imgur.com/a/ix34Q

उत्तर

16

कुछ बातें की जांच करने के:

  • कि लागू करता NSTableViewDelegate प्रोटोकॉल कक्षा में अपने NSTableView है अपने delegate सेट करता है? (मैं पूछता हूँ क्योंकि tableView:viewForTableColumn:row: जबकि tableView:objectValueForTableColumn:row: एक प्रतिनिधि विधि है कोई डेटा स्रोत तरीका है।)

  • वहाँ रहे हैं किसी भी बाइंडिंग कि आईबी में सेट कर रहे हैं? (आप उल्लेख है कि आप एक मौजूदा परियोजना से निब की नकल की।) NSTableView सामग्री के लिए बाइंडिंग बंधन के लिए और प्रदान की दृश्य की subviews के लिए मुख्य रूप से जाँच करें (आमतौर पर पाठ क्षेत्र।)

  • आप numberOfRowsInTableView: विधि को लागू करें NSTableViewDataSource प्रोटोकॉल से और क्या यह एक nonzero पूर्णांक देता है?

अंत में, आप पर "को आबाद करने दृश्य-आधारित तालिका दृश्य को प्रोग्राम" दस्तावेज में तालिका दृश्य प्रोग्रामिंग गाइड अध्याय पर एक नज़र हो सकता है।

+2

वास्तव में इसे एक प्रतिनिधि के रूप में जोड़ा जाना चाहिए था। आपका बहुत बहुत धन्यवाद! –

+0

निश्चित रूप से, मेरी खुशी। – FluffulousChimp

+0

पहला बिंदु मेरी समस्या थी। यह थोड़ा भ्रमित है कि ये विधियां विभिन्न तरीकों से संबंधित हैं (प्रोटोकॉल | डेटासोर्स) धन्यवाद! –