Градиент заполнения в 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. Заголовки заголовков столбцов не отображаются.
  2. Разделители столбца заголовка не отображаются.

Кто-нибудь может подсказать мне, как решить эти проблемы или какой-то лучший способ реализовать это?

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;

Другие вопросы по тегам