gpt4 book ai didi

swift - NSTabView 背景颜色

转载 作者:行者123 更新时间:2023-11-30 12:10:36 25 4
gpt4 key购买 nike

我有一个带有蓝色背景颜色的窗口 Controller

所有 subview Controller 的背景颜色都可以在蓝色背景下正常工作,就像它们的父窗口 Controller 一样,除了 NSTabViewController 的 NSTabView,它使用原始的灰色背景进行绘制

我不确定为什么它不继承背景颜色,或者为什么它不透明

无论如何,为了解决这个问题,我尝试了以下方法

(1)

我尝试编辑 CLayer 背景

tabView.layer?.backgroundColor = NSColor.blue.cgColor

我尝试将该代码放在任何地方,它唯一起作用的时候是当我从其 viewWillAppear 函数或 viewDidAppearviewWillLayout 内的 tabViewItem 访问 CLayer 时,但问题是,在我选择另一个选项卡之前,这段代码不起作用...即,当 tabViewController 显示在开头时,初始 View 背景颜色为灰色,并且在我选择之前不会更改为蓝色另一个标签!

根据我的理解,tabView是在其子viewDidAppear之后绘制的,这就是它克服蓝色顺序的原因,当选择另一个选项卡时,再次调用 viewDidAppear 函数,将颜色更改为蓝色(因为 tabView` 已经绘制)

(2)

我尝试将drawsBackground值更改为false

当显示 tabviewcontroller 时,背景就像它的窗口一样,是蓝色的,但是一旦我选择另一个选项卡,以前的 tabviewitem 控件就会留下黑色残留物

Black residue from the previous tab controls

非常感谢任何解决此问题的想法!

最佳答案

我通过向初始选项卡添加具有所需背景颜色的自定义框来解决此问题,并将其大小调整为 View 的大小

在其余的选项卡 View 中,我将此行添加到 viewWillAppear 函数

tabView.layer?.backgroundColor = NSColor.blue.cgColor

自定义框感觉像是黑客,但这是我能想到的唯一方法

关于swift - NSTabView 背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46114149/

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