dan*_*web 3 macos cocoa rounded-corners nstableview
我正在尝试自定义我的应用程序的 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];
}
Run Code Online (Sandbox Code Playgroud)
实际的圆形框架是在 NSScrollView drawRect 方法中绘制的。有趣的是,这确实剪辑了第一行和最后一行的选择:

但不是在表格滚动时:

所以问题仍然存在:如何在 NSScrollView 的圆形框架内剪辑所有绘图?
我发现你可以在表格视图的容器滚动视图上调用它。
self.scrollView.wantsLayer = TRUE;
self.scrollView.layer.cornerRadius = 6;
Run Code Online (Sandbox Code Playgroud)
这就是我所需要的并且它有效。不需要子类化。
| 归档时间: |
|
| 查看次数: |
1672 次 |
| 最近记录: |