0

我正在尝试创建一个带有圆角的 NSTableView(很像 iOS 的Grouped表格视图样式)。然而,事实证明这是异常困难的。

我试过使用CALayers

// ...
self.wantsLayer = YES;
self.layer.masksToBounds = YES;
self.layer.cornerRadius = 10.0;
// ...

它适用于NSView子类,但不适用于NSTableViewor NSScrollView

我也尝试过覆盖drawRect:,并使用 bezierPaths。

NSBezierPath *rectPath = [NSBezierPath bezierPathWithRect: self.bounds];
[rectPath appendBezierPathWithRoundedRect: self.bounds xRadius: 10 yRadius: 10];
[rectPath addClip];
[super drawRect: rectPath.bounds];

我没有在 s 上测试过这个方法NSView,但它对 s 不起作用NSTableView

我之前在 StackOverflow 上看到过一些“重复”的问题,但是他们无法提供令人满意的解决方案。

NSTableView 上的圆角有 1 个“正确”答案,看起来如此简单,因为提问者改变了他的目标。这个问题提示我尝试NSBezierPaths,但正如我所说,我似乎无法让该方法起作用。

NSTableView 圆角建议对 NSScrollView 进行子类化,但这同样对CALayers.

任何建议将不胜感激。我想得到一个明确的答案,不仅是为了我自己,也是为了后代。

4

1 回答 1

2

我也面临制作圆角的同样问题,但没有得到答案。

最后我以另一种方式做到了,我使表格的背景透明,并在表格视图后面添加了 4pixel 圆角的 .png 文件的图像(我想显示)。

通过这种方式,我展示了带有圆角的桌子。希望这个解决方案对你有用。

于 2012-02-20T11:25:05.660 回答