I\'m trying to subclass NSCell
to draw a custom background highlight. The documentation seems to suggest that the overriding highlight:withFrame:inView:
Thanks to the help of @Bavarious I've managed to work it out. My extended NSTextFieldCell class implementation now contains:
-(NSColor *)highlightColorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
return nil;
}
- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
if ([self isHighlighted]) {
// Draw highlight background here
}
[super drawInteriorWithFrame:cellFrame inView:controlView];
}
The key is to make sure you return nil
for highlightColorWithFrame:inView:
to stop drawInteriorWithFrame:inView:
drawing a background and yet still calling it to draw the main content (in this case text).