我正在尝试自定义我的应用程序的 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 的圆角框架内?