我试图做一个NSScrollView用剪切的边角,类似于Twitter的应用程序剪辑路径:我怎样才能得到NSScrollView尊重
我有一个NSScrollView
子类,添加以下代码:
- (void)drawRect:(NSRect)dirtyRect {
NSBezierPath *pcath = [NSBezierPath bezierPathWithRoundedRect:[self bounds] xRadius:kDefaultCornerRadius yRadius:kDefaultCornerRadius];
[path setClip];
[super drawRect:dirtyRect];
}
我预计NSScrollView
的内容有圆角,但它不尊重剪辑路径。我怎样才能做到这一点?
UPDATE &澄清
我知道如何使一个自定义NSScroller
,我知道如何使它透明覆盖。我所要求的只是如何使NSSCrollView
卡在其角落,包括它所包含的一切。 NSScrollView
位于NSView
之内,其背景可能会发生变化,这意味着视图叠加以伪造圆角不是选项。
drawRect声明的超级实现可能会设置新闻剪辑。尝试逐个绘制部件,而不是调用超级部件,看看它是否会改变任何内容。 – sosborn 2011-03-11 03:10:45
你的意思是画出contentView和documentView自己,而不是要求super做到这一点?看起来我不得不重新实现所有的NSScrollView滚动逻辑来做到这一点。我希望有一种方式,而不是重新发明轮子。 – coneybeare 2011-03-11 03:16:52
查看NSScroller的文档。通常一个NSScrollView将有两个NSScrollers,一个x和一个y。 NSScroller类公开了绘制方法。如果你要像Twitter客户端一样的外观,你将不得不继承NSScroller的子类。 – sosborn 2011-03-11 05:32:17