2013-10-24 4 views
7

MAC 응용 프로그램을 개발 중이며 tableView가 포함되어 있습니다. 선택한 행의 색을 노란색으로 변경하고 싶습니다.NSTableview 하이라이트 색상을 변경하십시오.

[yourtableview setSelectionHighlightStyle:NSTableViewSelectionHighlightStyleNone]; 

등 NSTableView는 다음 대리자 메서드를 구현 : 당신이 컬럼의 개별 셀을 heighlight하려면

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex 
{ 
    if ([[aTableView selectedRowIndexes] containsIndex:rowIndex]) 
    { 
     [aCell setBackgroundColor: [NSColor yellowColor]]; 
    } 
    else 
    { 
     [aCell setBackgroundColor: [NSColor whiteColor]]; 
    } 
    [aCell setDrawsBackground:YES]; 
} 
+0

이것은 도움이 될 수 있습니다. - http://stackoverflow.com/questions/7038709/change-highlighting-color-in- nstableview-in-cocoa –

답변

13

설정이 : -

- (void)tableView:(NSTableView *)tableView 
    willDisplayCell:(id)cell 
    forTableColumn:(NSTableColumn *)tableColumn 
       row:(NSInteger)row 
{ 
    if ([[tableColumn identifier] isEqualToString:@"yourColumm"]) 
    { 
     [cell setBackgroundColor:[NSColor yelloColor]]; 
    } 
} 
+0

고맙습니다 ... 나는 이것을 시도 할 것입니다. :) – Raghav

+5

셀 기반 테이블에 대해 이야기하고 있다고 가정하면 셀이 발생하지 않는 한 이전 답변과 같은 이유로이 기능이 작동하지 않습니다 무엇이든 패딩이 없다 (어쩌면 그다지). 행 강조 표시를 변경하려면 다음과 같이 표의 highlightSelectionInClipRect : 메서드를 재정의하고 배경색을 직접 그립니다. http://stackoverflow.com/questions/7038709/change-highlighting-color-in-nstableview-in-cocoa – dgatwood

0

다음이 아래와 같이 구현을 테이블보기에

+0

선택한 행에있는 셀의 배경이 행 강조 표시로 완전히 덮여 있으므로 셀의 배경색을 설정해도 셀 모양이 변경되지는 않습니다. – dgatwood

관련 문제