Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSTableView圆角,如UITableView组_Objective C_Cocoa_Calayer_Nstableview_Nsbezierpath - Fatal编程技术网

Objective c NSTableView圆角,如UITableView组

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

我试图创建一个圆角的NSTableView(很像iOS的
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应用程序中也需要同样的东西