gpt4 book ai didi

macos - NSOutlineView 渐变背景

转载 作者:行者123 更新时间:2023-12-03 16:14:34 27 4
gpt4 key购买 nike

我正在尝试实现一个带有渐变背景的 NSOutlineView 子类:

- (void)drawBackgroundInClipRect:(NSRect)clipRect {
[gradient drawInRect:clipRect angle:90];
}

它几乎按预期工作:

但是当我调整 View 大小时,渐变“中断”:

除了被项目覆盖的区域之外,渐变在任何地方都正确渲染。当我更改窗口的关键状态(通过切换到另一个应用程序)时,该区域也会正确渲染,就像折叠队列项目一样。我缺少什么?调整大小后我应该如何更新该区域的背景?

最佳答案

剪辑矩形是发生变化的区域,不一定是渐变的整个区域。如果您希望渐变从 View (的可见区域)的顶部开始,并在 View (的可见区域)的底部结束,那么您需要每次都使用相同的矩形绘制渐变。

使用the NSRectClip function剪切到给定的矩形,这将限制您的绘图,然后询问自己(轮廓 View )your enclosing scroll view ,向 ScrollView 询问 the visible rect ,并告诉 ScrollView convert that rect to the outline view's coordinate system .

关于macos - NSOutlineView 渐变背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8792590/

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