我正在尝试自定义应用程序的UI,并希望我的NSTableView有圆角。因此,我子类化了NSTableView并获得了以下结果:
然而,当我填充表格并选择一行时,选择会绘制在边框上,如下所示:
我已经尝试在表格视图绘制代码中添加剪辑,但没有效果。您有什么建议可以解决这个问题吗?
编辑: 我的NSTableView中的绘制代码如下:
实际的圆形框架是在NSScrollView drawRect方法中绘制的。有趣的是,这确实剪辑了第一行和最后一行的选择内容:
但是当表格滚动时不起作用:
因此问题仍然存在:如何将所有绘图剪切到NSScrollView的圆形框架内?
![Imgur](https://i.imgur.com/lzMp0.png)
![Imgur](https://i.imgur.com/UjM4b.png)
编辑: 我的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方法中绘制的。有趣的是,这确实剪辑了第一行和最后一行的选择内容:
![Imgur](https://i.imgur.com/tIzkl.png)
![Imgur](https://i.imgur.com/HSSWa.png)
drawRect
和initWithRect
吗? - Ethan ReesorinitWithRect
,我只是提出这个可能性。我想知道你的问题是否与在剪辑后调用[super drawRect:]
有关。这只是一些想法。 - Ethan Reesor