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:
, Вот где вы должны сделать свой собственный основной рисунок.