2011-01-25 17 views
5

मुझे अपने एनएसटीबल व्यू 1 के लिए निम्नलिखित गुणों को बदलने की जरूरत है - रंग बदलें: पंक्ति रंग और टेक्स्ट रंग जब चयनित 2 - टेक्स्ट रंग बदलें, प्रत्येक पंक्ति के लिए यह निर्भर करता है कुछ इनपुट पैरामीटर,एनएसटीबल व्यू एक पंक्ति के लिए पाठ रंग बदलना

प्रत्येक पंक्ति के लिए textcolor बदलते के लिए, मैं प्रतिनिधि विधि willDisplayCell ओवरराइड करना चाहिए, यह मैं, क्या किया है अब तक, है

- बनाना तालिका ----

pMyTableView  = [[[CustomTableView alloc] initWithFrame:clipViewBounds] autorelease]; 


NSTableColumn* firstColumn  = [[[NSTableColumn alloc] initWithIdentifier:@"firstColumn"] autorelease]; 

[firstColumn setWidth:35]; 

[pMyTableView addTableColumn:firstColumn]; 

NSTableColumn* secondColumn  = [[[NSTableColumn alloc] initWithIdentifier:@"secondColumn"] autorelease]; 

[secondColumn setWidth:180]; 

[pMyTableView addTableColumn:secondColumn]; 
    [pMyTableView setRowHeight:30]; 

    [self SetContactTableDisplayAttribute]; 

[pMyTableView setDataSource:self]; 
[scrollView setDocumentView:pOnLineCTView]; 

    [pMyTableView setDelegate:self] 

; 

- - अन्य प्रतिनिधि विधि -------------

- (id) tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex{ 
    if([pColName isEqualToString:@"secondColumn"]) 
    { 
      // Here there is some logic , to get the proper string that i wanted to display 
     return @"tempString"; 

    } 

} 

---- अब इस कैसे मैं पाठ का रंग ---

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex { 

    NSString *colName = [aTableColumn identifier]; 
    if([colName isEqualToString:@"secondColumn"]){ 
     NSTextFieldCell *pCell = aCell; 
     [pCell setTextColor:[NSColor blueColor]]; 
    } 

} 
साथ

की स्थापना कर रहा हूँ कोड के ऊपर, यह लॉग में अपवाद के लिए जा रहा है, मैं लाइन - [एनएससीएल सेटटेक्स्टकॉलर:] देख सकता हूं: उदाहरण के लिए भेजा गया अपरिचित चयनकर्ता ऐसा लगता है कि मुझे टेक्स्ट फ़ील्ड सेल सेट करने की आवश्यकता है, लेकिन मुझे कैसे और कहाँ कोई विचार नहीं है , कृपया मेरी मदद करें,

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

उत्तर

7

कुछ समय बाद मैंने ऐसा किया है, लेकिन जब मैं इसे करने की ज़रूरत है तो मैं हमेशा इस ब्लॉग पोस्ट को कॉर्बिन डुन द्वारा संदर्भित करता हूं: Cocoa: willDisplayCell delegate method of NSTableView, [NSCell setTextColor], and “source lists”

वैसे, कॉर्बिन ऐप्पल में काम करता है और जो मैं समझता हूं उससे एनएसटीबल व्यू के लिए ज़िम्मेदार है। जब वह कोको के बारे में कुछ भी ब्लॉग करता है तो मैं हमेशा इसे बुकमार्क करना सुनिश्चित करता हूं।

+0

धन्यवाद, मुझे कोशिश करें :) – Amitg2k12

+0

धन्यवाद, यह जादू – Amitg2k12

+0

की मदद करता है। – sosborn