NSOutlineView Control HighLight и отступ - PullRequest
0 голосов
/ 08 февраля 2011

В моем представлении 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;
}

}

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

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

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

и что я ожидал

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

1 Ответ

0 голосов
/ 08 февраля 2011

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

...