Подклассы NSScroller, как избавиться от белого квадрата в правом нижнем углу? - PullRequest
3 голосов
/ 08 января 2010

Я создал подкласс NSScroller, похожий на iTunes, однако, если горизонтальные и вертикальные скроллеры видны в NSScrollView или NSTableView, у меня остается уродливый белый квадрат в правом нижнем углу. У кого-нибудь есть подсказка, где добавить мой собственный рисунок, чтобы заполнить его чем-нибудь красивее?

1 Ответ

3 голосов
/ 08 января 2010

Хорошо, я думаю, что у меня есть решение (я).

  • Либо вы указываете свитку не рисовать его фон, в этом случае все, что под ним, заполнит угол.

  • Или, что я и сделал, вы переопределяете метод drawRect в scrollview следующим образом:

    - (void)drawRect:(NSRect)rect{
       [super drawRect: rect];
    
       if([self hasVerticalScroller] && [self hasHorizontalScroller]){
         NSRect vframe = [[self verticalScroller]frame];
         NSRect hframe = [[self horizontalScroller]frame];
         NSRect corner;
         corner.origin.x = NSMaxX(hframe);
         corner.origin.y = NSMinY(hframe);
         corner.size.width = NSWidth(vframe);
         corner.size.height = NSHeight(hframe);
         // your custom drawing in the corner rect here
      }
    }
    
...