2012-01-01 24 views
5

मेरे पास एक व्यू-आधारित NSOutlineView एनएसटीआर कंट्रोलर से जुड़ा हुआ है। जब तक मैं अपने प्रतिनिधि में outlineView:isGroupItem: विधि लागू नहीं करता तब तक सबकुछ ठीक से काम करता प्रतीत होता है, फिर समूह शीर्षलेख अचानक दिखना बंद कर देता है। इसव्यू-आधारित एनएसटीबल व्यू/एनएसओटलाइन व्यू और isGroupItem

enter image description here

की तरह मुझे लगता है कि अगर मैं NSOutlineView बदलने के लिए के लिए गए थे कोशिका आधारित तो समूह आइटम ठीक से पता चलता है की पुष्टि की। एनएसटीबल व्यू के लिए भी इसी प्रकार का व्यवहार मनाया जाता है। क्या किसी और को इस समस्या का सामना करना पड़ा है?

उत्तर

11

इसे हल किया गया!

स्तंभ के रूप में ही पहचानकर्ता के साथ दृश्य का पता लगाने के द्वारा पता चला मैं

- (NSView *)outlineView:(NSOutlineView *)outlineView 
    viewForTableColumn:(NSTableColumn *)tableColumn 
        item:(id)item { 
    if ([self outlineView:outlineView isGroupItem:item]) { 
     NSString *vId = [[[outlineView tableColumns] objectAtIndex:0] identifier]; 
     return [outlineView makeViewWithIdentifier:vId owner:self]; 
    } 
    return [outlineView makeViewWithIdentifier:[tableColumn identifier] owner:self]; 
} 

जाहिर NSOutlineView प्रतिनिधि में निम्न विधि को लागू करने के लिए किया था आधारित NSOutlineView तालिका में प्रत्येक कक्ष के लिए दृश्य उत्पन्न डिफ़ॉल्ट दृश्य से, । समूह समूह/समूह पंक्ति के मामले में, उस पंक्ति से जुड़े tableColumm नहीं हैं, इसलिए दृश्य शून्य हो गया है और दिखाई नहीं दे रहा है।

सेब के TableViewPlayground sample project के साथ खेलने में वास्तव में मदद मिली! अत्यधिक सिफारिशित!

+0

विस्तृत अद्यतन के लिए धन्यवाद। –

+0

+1 TableViewPlayground संदर्भ – rluba

+0

के लिए क्यों नहीं है 'outlineView: viewForTableColumn: item: '[आधिकारिक' NSOutlineViewDelegate' दस्तावेज़ों में] (https://developer.apple.com/library/mac/documentation/cocoa/reference/ NSOutlineViewDelegate_Protocol/संदर्भ/संदर्भ.html) – zakdances