Градиент заполнения в NSTableHeaderView не работает должным образом - PullRequest
0 голосов
/ 13 декабря 2011

Я пытаюсь заполнить градиент в заголовке таблицы.До сих пор я смог добиться этого, создав подкласс 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];
}

Так что раньше это выглядело так -

enter image description here

Теперь это выглядит так:

enter image description here

Как показано на снимке экрана выше, когда я использовал этот код, я столкнулся с несколькими проблемами:

  1. Столбецзаголовки заголовков не отображаются.
  2. Разделители столбцов заголовков не отображаются.

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

1 Ответ

1 голос
/ 23 декабря 2011

Вы должны настроить 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;

...