gpt4 book ai didi

macos - 基于 View 的 NSTableView 是否可以在行边界之外绘制?

转载 作者:行者123 更新时间:2023-12-03 17:23:05 24 4
gpt4 key购买 nike

我有一个包含 2 列的 NSTableView。每列都包含一个不同的 NSTableCellView 子类,在某些情况下我想实现重叠效果,因此例如第 1 列第 1 行中的 View 顶部可以位于前一个 View 的底部上方0 列 0 View 。

我知道在 tableView:viewForTableColumn:row 中设置 NSTableCellView 子类实例的框架是没有意义的,因为它总是会被覆盖,但感觉剪切可能发生在行上水平以及细胞水平。

是否可以在单元格/行边界之外绘制?

最佳答案

如果你弄乱了图形上下文,任何 View 都可能在其边界之外绘制;这是完全错误的做法,就像在应用程序权限之外的内存中“乱涂乱画”是错误的一样。

更安全(更尊重系统的绘制状态)的方法是通过自己绘制每个 NSTableRowView 的背景来捏造它,但在其自己的边界内垂直“偏移”,以便行 n 绘制除第一行之外的所有行的 n-1 行底部。也就是说,在除第一行之外的所有行上,行 View 的“顶部边缘”绘制的内容看起来类似于前一个行 View 的底部边缘;底部边缘在绘图中被“切掉”。这样,您就牺牲了通过翻转开关来获取 View 阴影的相对较小的便利性,以便更好地控制行的绘制方式。

关于macos - 基于 View 的 NSTableView 是否可以在行边界之外绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15707739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com