Objective c NSTableView圆角,如UITableView组
我试图创建一个圆角的NSTableView(很像iOS的Objective c NSTableView圆角,如UITableView组,objective-c,cocoa,calayer,nstableview,nsbezierpath,Objective C,Cocoa,Calayer,Nstableview,Nsbezierpath,我试图创建一个圆角的NSTableView(很像iOS的Grouped表格视图样式)。 然而,事实证明,这非常困难 我尝试使用CALayers: // ... self.wantsLayer = YES; self.layer.masksToBounds = YES; self.layer.cornerRadius = 10.0; // ... 它适用于NSView子类,但不适用于NSTableView或NSScrollView 我还尝试覆盖drawRect:,并使用BezierPath NS
Grouped
表格视图样式)。
然而,事实证明,这非常困难
我尝试使用CALayers
:
// ...
self.wantsLayer = YES;
self.layer.masksToBounds = YES;
self.layer.cornerRadius = 10.0;
// ...
它适用于NSView
子类,但不适用于NSTableView
或NSScrollView
我还尝试覆盖drawRect:
,并使用BezierPath
NSBezierPath *rectPath = [NSBezierPath bezierPathWithRect: self.bounds];
[rectPath appendBezierPathWithRoundedRect: self.bounds xRadius: 10 yRadius: 10];
[rectPath addClip];
[super drawRect: rectPath.bounds];
我没有在NSView
s上测试过此方法,但它不适用于NSTableView
s
我以前在StackOverflow上看到过一些“重复”的问题,但是它们无法提供令人满意的解决方案
有1个“正确”的答案,似乎因为提问者改变了他的目标而如此简单。这个问题促使我尝试NSBezierPath
s,但正如我所说的,我似乎无法让这个方法起作用
建议子类化NSScrollView,但是它对CALayers
同样没有响应
如有任何建议,将不胜感激。我想得到一个明确的答案,不仅是为了我自己,也是为了子孙后代。我也面临着同样的问题:拐弯,但没有得到答案 最后,我用另一种方式完成了这项工作,我将表格的背景设置为透明,并在表格视图后面添加了4像素圆角的.png文件的图像 这样,我就展示了带有圆角的桌子。
希望此解决方案对您有效。一个好建议。关于如何通过编程实现这一点,有什么线索吗?我一直在开发一个开源库,以轻松实现这一点。我将用我的结果更新我的问题。感谢你朝着正确的方向轻推@你有没有找到解决办法?我的Mac应用程序中也需要同样的东西