我有一个类似于的自定义视图子类NSBox
绘制圆形框背景。问题是,如果我放置一个像NSTableView
在盒子视图中,它不会夹到圆角。有没有什么方法可以把角变圆NSTableView
及其父滚动视图?
我还没有尝试过使用表视图,但尝试过使用其他控件。
在 NSTableView 的子类中(或您想要剪辑的任何视图/控件)
- 覆盖
drawRect:
- 创建一个具有您想要的形状的 NSBezierPath(可能是
appendBezierPathWithRoundedRect:xRadius:yRadius:
只需记住使用视图的边界作为大小)
- 发送路径
addClip
将该形状添加到视图的剪切路径的消息
- 打电话给超级
drawRect:
如果表视图有标题,您可能需要通过子类化 NSTableHeaderView 来修剪顶角。如果你有滚动条,你可能必须对它们做同样的事情,除了只剪掉某些角落。希望你没有滚动条,因为我怀疑这看起来是否正确。基本上,您想要剪切绘制该部分的视图/控件,剪切父视图不会导致子视图被剪切。
如果您查看 Apple 的“欢迎使用 Xcode”窗口,他们会通过在顶部绘制自定义标题并在底部绘制文本块来摆脱它,这样他们就不必将表格视图本身舍入。如果你能做这样的事情我会的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)