【问题标题】:NSTableView Rounded Corners like UITableView GroupsNSTableView 圆角,如 UITableView 组
【发布时间】:2012-02-18 22:55:37
【问题描述】:

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

我尝试过使用CALayers

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

适用于NSView 子类,但不适用于NSTableViewNSScrollView

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

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

我没有在NSViews 上测试过这个方法,但它对NSTableViews 不起作用。

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

Rounded corners on NSTableView 有 1 个“正确”答案,似乎只是因为提问者改变了目标而被标记。这个问题提示我尝试NSBezierPaths,但正如我所说,我似乎无法让该方法发挥作用。

NSTableView rounded corners 建议子类化一个 NSScrollView,但是这同样对 CALayers 没有响应。

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

【问题讨论】:

    标签: objective-c cocoa calayer nstableview nsbezierpath


    【解决方案1】:

    我也遇到了做圆角的问题,但没有得到答案。

    最后我用另一种方式做到了,我使桌子的背景透明并在桌子后面添加了4像素圆角的.png文件的图像(我想显示)查看。

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

    【讨论】:

    • 一个好建议。有关如何以编程方式执行此操作的任何线索?
    • 我一直在开发一个开源库来轻松完成这项工作。我会用我的结果更新我的问题。感谢您朝正确的方向轻推!
    • @pcperini 你有没有得到解决方案?我的 Mac 应用也需要同样的东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    相关资源
    最近更新 更多