NSTableView上的圆角

时间:2010-12-11 20:18:56

标签: objective-c cocoa nstableview nsview nsscrollview

我有一个类似于NSBox的自定义视图子类,它绘制了一个圆角框背景。问题是如果我在框视图中放置像NSTableView这样的视图,它就不会剪切到圆角。有没有办法围绕NSTableView及其父卷轴视图的角落?

1 个答案:

答案 0 :(得分:2)

我没有尝试使用表格视图,但有其他控件。

在NSTableView的子类中(或任何想要剪辑的视图/控件)

  1. 覆盖drawRect:
  2. 使用您想要的形状创建一个NSBezierPath(可能appendBezierPathWithRoundedRect:xRadius:yRadius:只记得使用视图的边界作为大小)
  3. 发送路径addClip消息以将该形状添加到视图的剪切路径
  4. 致电超级drawRect:
  5. 如果表格视图有标题,您可能需要通过继承NSTableHeaderView来剪切顶角。如果你有滚动条,你可能不得不对它们做同样的事情,除了只剪一些角落。希望你没有滚动条,因为我怀疑它看起来是正确的。基本上你想要剪切绘制那个部分的视图/控件,剪切父部分不会导致修剪子视图。

    如果你看看Apple的欢迎使用Xcode窗口,他们可以通过在顶部绘制一个自定义标题和在底部绘制一个文本块来逃避它,这样他们就不必围绕表视图本身。如果你能做那样的事情我会。