Изменить цвет выделения на основе представления NSTableView - PullRequest
42 голосов
/ 27 февраля 2012

Стандартный цвет подсветки в приложениях OS X - синий.

Можно ли изменить его на другой цвет, например серый

Обратите внимание, что я использую новый основанный на представлении NSTableView, доступный начиная с OS X 10.7.

Ответы [ 13 ]

0 голосов
/ 02 января 2014
  Use this Notification for NSTableView:

          - (void)tableViewSelectionDidChange:(NSNotification *)notification
            {

                 //You Logic stuff
             }
0 голосов
/ 02 января 2014
- (void)tableViewSelectionDidChange:(NSNotification *)notification
{
    [tblCategory enumerateAvailableRowViewsUsingBlock:^(NSTableRowView *rowView, NSInteger row){
        CustomMainCell *cellView = [rowView viewAtColumn:0];
        if(rowView.selected){
            cellView.txtFieldTitle.textColor=[NSColor colorWithCalibratedRed:245.0/255.0 green:110.0/255.0 blue:65.0/255.0 alpha:1.0];
        }else{
            cellView.txtFieldTitle.textColor=[NSColor whiteColor];
        }
    }];
}

[tblКатегория setSelectionHighlightStyle: NSTableViewSelectionHighlightStyleNone];

0 голосов
/ 25 октября 2012

Вы должны создать подкласс NSTableView и переписать функции ниже, чтобы изменить чередующиеся цвета.

  • (void) drawRow: (NSInteger) row clipRect: (NSRect) clipRect

  • (void) drawBackgroundInClipRect: (NSRect) clipRect ** Этот, чтобы изменить основной и альтернативный цвет **

Используйте цикл for и вставьте это условное (i % 2 == 0) для обнаружения нечетных и четных строк.

...