Градиент заполнения в NSTableHeaderView не работает должным образом
Я пытаюсь заполнить градиент в заголовке таблицы. До сих пор я смог добиться этого, создав подкласс NSTableHeaderView и используя этот код в нем.
- (void)drawRect:(NSRect)dirtyRect {
// Drawing code here.
NSGradient *gradientToFill = [[NSGradient alloc] initWithStartingColor:[NSColor colorWithCalibratedRed:0.8828125 green:0.8984375 blue:0.91015625 alpha:1.0]
endingColor:[NSColor colorWithCalibratedRed:0.5546875 green:0.59765625 blue:0.66015625 alpha:1.0] ];
[gradientToFill drawInRect:dirtyRect angle:90];
}
Так раньше это выглядело так:
Теперь это выглядит так
Как показано на скриншоте выше, когда я использовал этот код, я столкнулся с несколькими проблемами:
- Заголовки заголовков столбцов не отображаются.
- Разделители столбца заголовка не отображаются.
Кто-нибудь может подсказать мне, как решить эти проблемы или какой-то лучший способ реализовать это?
1 ответ
Вы должны настроить NSTableHeaderCell
и заполните градиент NSCell's
Методы рисования. Вам необходимо реализовать следующие методы.
- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
-(void)highlight:(BOOL)isHighlighted withFrame:(NSRect)cellFrame inView:(NSView *)view
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView;