macos – NSOutlineView渐变背景

macos – NSOutlineView渐变背景,第1张

概述我正在尝试使用渐变背景实​​现NSOutlineView子类: - (void)drawBackgroundInClipRect:(NSRect)clipRect { [gradient drawInRect:clipRect angle:90];} 它几乎可以用于: 但是当我调整视图大小时,渐变“中断”: 除了在项目覆盖的区域之外,所有地方都会正确渲染渐变.当我更改窗口的关键状态(通过 我正在尝试使用渐变背景实​​现NSOutlineVIEw子类:

- (voID)drawBackgroundInClipRect:(NSRect)clipRect {    [gradIEnt drawInRect:clipRect angle:90];}

它几乎可以用于:

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

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

解决方法 剪辑矩形是已更改的区域,不一定是渐变的整个区域.如果希望渐变从视图的(可见区域)的顶部开始,并在视图的(可见区域)的底部结束,则需要每次都使用相同的矩形绘制渐变.

使用the NSRectClip function剪辑到给定的矩形,这将限制你的绘图,然后问自己(大纲视图)your enclosing scroll view,询问滚动视图the visible rect,并告诉滚动视图到convert that rect to the outline view’s coordinate system.

总结

以上是内存溢出为你收集整理的macos – NSOutlineView渐变背景全部内容,希望文章能够帮你解决macos – NSOutlineView渐变背景所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1001026.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存