NSOutlineView Control HighLight и отступ

В моем представлении Outline я использую CustomCell, который является ничем иным, как взятым из кода Cocoa ImageTextCell RefrenceCode с некоторыми изменениями,

Можно ли изменить цвет подсветки для ячейки?

До сих пор я сделал следующее, - (void) drawWithFrame: (NSRect) cellFrame inView: (NSView *) controlView {

if([self isHighlighted]){
    NSColor *evenColor = [NSColor colorWithCalibratedRed:.1 green:0.1 blue: 0.1   
         alpha:1.0];
    [evenColor set];
    NSRectFill(cellFrame);
    bSelected = YES;
}

}

Это работает, но то, что происходит, я мог видеть, что подсветка цвета ячейки сначала начинается с цвета системы по умолчанию, затем, он будет переопределен даже цветом, я чувствую, что проблема в cellFrame.origin.x, не начиная с 0,

вывод был как ниже после применения этого куска кода

----- My Custom Cell ----------------
======================================
| blue |                             |
| color|    even Color               | 
|      |                             |
======================================

и что я ожидал

----- My Custom Cell ----------------
======================================
|                                    |
|    even Color                      | 
|                                    |
======================================

1 ответ

Подсветка обрабатывается NSOutlineView (ну, на самом деле, это унаследованное поведение от NSTableView). Во всяком случае, вместо того, чтобы сосредоточиться на ячейке, вы должны взглянуть на подклассы NSOutlineView и переопределение highlightSelectionInClipRect:, Вот где вы должны сделать свой собственный основной рисунок.

Другие вопросы по тегам