我正在尝试自定义我的应用程序的UI,我希望我的NSTableView有圆角。因此,我对NSTableView进行了子类化,得到了以下结果:

但是,当我填充表并选择一行时,所选内容将被绘制到边框上,如下所示:

我尝试在表视图绘图代码中添加一个剪辑,但它不起作用。有什么我能解决的建议吗?
编辑:
我在NSTableView中的绘图代码如下:
- (void)drawRect:(NSRect)dirtyRect {
[NSGraphicsContext saveGraphicsState];
NSRect frame = NSMakeRect(0.0, 0.0, [self bounds].size.width, [self bounds].size.height-1.0);
[[NSBezierPath bezierPathWithRoundedRect:frame xRadius:3.6 yRadius:3.6] addClip];
[super drawRect:dirtyRect];
[NSGraphicsContext restoreGraphicsState];
}实际的圆角框架是在NSScrollView drawRect方法中绘制的。有趣的是,这确实剪辑了第一行和最后一行的选择:

但不是当桌子滚动时:

因此,问题仍然存在:我如何将所有绘图剪辑在NSScrollView的圆形框架内?
发布于 2014-06-19 15:12:52
我发现您可以在表视图的容器滚动视图上调用它。
self.scrollView.wantsLayer = TRUE;
self.scrollView.layer.cornerRadius = 6;我只需要这些就行了。不需要子类。
https://stackoverflow.com/questions/13852830
复制相似问题