Где вы размещаете этот нестандартный + составной подкласс NSCell?
-set Highlighted: ДА не то, что вы ищете. Из документации:
По умолчанию этот метод ничего не делает.
Класс NSButtonCell переопределяет это
способ нарисовать кнопку с
внешний вид определяется
NSCellLightsByBackground,
NSCellLightsByContents или
NSCellLightsByGray.
Как правило, представление хоста для ячейки устанавливает стиль фона ячейки, и ячейка будет использовать его во время рисования, чтобы отображать себя соответствующим образом. Распространение стиля фона от основной ячейки до вложенных ячеек.
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
NSRect textRect, popUpRect;
NSDivideRect(cellFrame, &textRect, &popUpRect, NSWidth(cellFrame) / 2, NSMinXEdge);
/* Draw the text cell (self) */
[super drawInteriorWithFrame: textRect inView: controlView];
/* Draw our compound popup cell - create & release every time drawn only in example */
NSPopUpButtonCell *popUpCell = [[NSPopUpButtonCell alloc] initTextCell: @"popup title"];
[popUpCell setBordered: NO];
[popUpCell setBackgroundStyle: [self backgroundStyle]];
[popUpCell drawWithFrame: popUpRect inView: controlView];
[popUpCell release];
}
Если вы размещаете эту составную ячейку в NSTableView, этого должно быть достаточно для получения правильного фона для выбранных строк.
Если вы размещаете это по своему собственному усмотрению, возможно, вам придется выполнить дополнительную работу. (И мы должны предоставить дополнительную информацию о среде хоста, прежде чем мы сможем предложить совет.)