Я создал iTunes как подкласс NSScroller, однако, если и горизонтальный, и вертикальный скроллеры видны в NSScrollView или NSTableView, я остался с уродливым белым квадратом в нижнем правом углу. Кто-нибудь знает, где добавить свой собственный чертеж, чтобы заполнить его чем-нибудь красивым?Подкласс NSScroller, как избавиться от белого квадрата в нижнем правом углу?
3
A
ответ
3
Хорошо, я думаю, что у меня есть решение (ы).
Либо вы указываете scrollview, чтобы не рисовать его фон, в этом случае все, что находится под ним, заполнит угол.
Или, что то, что я сделал, переопределить метод 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 } }
Немного аккуратнее решение может быть, чтобы добавить поддержку для подвид здесь, а не в отличие от cornerView , и переопределение метода -tile для позиционирования и отображения/скрытия этого представления. Таким образом, вы можете создавать различные аккуратные пользовательские представления и просто подключать их туда, выращивать ящики, набивные наполнители, кнопки ... – uliwitness
Первое решение здесь, похоже, не работает. Если я скажу прокрутку, чтобы не рисовать ее фон, тогда угол заполняется белым цветом, хотя фон окна темный. – JWWalker