3
我已经创建了一个类似于NSScroller的子类,但是如果水平和垂直滚动条在NSScrollView或NSTableView中都可见,我会在右下角留下一个丑陋的白色方形。任何人都知道在哪里添加我的自定义绘图以填充更漂亮的东西?子类化NSScroller,如何摆脱右下角的白色方块?
我已经创建了一个类似于NSScroller的子类,但是如果水平和垂直滚动条在NSScrollView或NSTableView中都可见,我会在右下角留下一个丑陋的白色方形。任何人都知道在哪里添加我的自定义绘图以填充更漂亮的东西?子类化NSScroller,如何摆脱右下角的白色方块?
好吧,我想我有解决方案(S)。
要么你告诉scrollview不要绘制它的背景,在这种情况下,它下面的任何东西都会填满角落。
或者说,这是我做的,你重写滚动视图的drawRect方法有以下几点:
- (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 2010-01-17 14:44:04
这里的第一个解决方案似乎不起作用。如果我告诉滚动视图不要绘制其背景,那么即使窗口背景很暗,角落也会充满白色。 – JWWalker 2013-10-17 20:19:10