簡體   English   中英

NSTabView 背景色

[英]NSTabView Background Color

我有一個藍色背景色的窗口控制器

所有子視圖控制器的背景顏色都可以在藍色背景下正常工作,就像它們的父窗口控制器一樣,除了 NSTabViewController 的 NSTabView,它使用原始的灰色背景繪制

我不確定為什么它不繼承背景顏色,或者為什么它不透明

無論如何,為了解決這個問題,我嘗試了以下

(1)

我嘗試編輯 CLayer 背景

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

我嘗試將該代碼放在任何地方,唯一一次起作用的是當我從viewWillAppear函數或viewDidAppearviewWillLayout的 tabViewItem 訪問 CLayer 時,但問題是此代碼在我選擇另一個選項卡之前不起作用......即當 tabViewController 在開頭顯示時,初始視圖背景顏色為灰色,並且在我選擇另一個選項卡之前不會更改為藍色!

從我的理解中, tabView是其子后得出viewDidAppear ,這就是為什么它克服了藍色順序,並且選擇另一個選項卡時,該viewDidAppear函數被調用再次改變顏色為藍色(因為tabView`已經繪制)

(2)

我試圖將drawsBackground值更改為false

當顯示tabviewcontroller時,背景就像它的窗口一樣,藍色,但是一旦我選擇另一個選項卡,之前的tabviewitem控件就會留下黑色殘留物

上一個選項卡控件的黑色殘留物

非常感謝如何解決這個問題的任何想法!

我通過將自定義框添加到具有所需背景顏色的初始選項卡來解決此問題,並將其調整為視圖的大小

在其余的選項卡視圖中,我將此行添加到viewWillAppear函數

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

自定義框感覺就像一個黑客,但我能想出的唯一方法

另一種解決方案是將一個自定義NSBox后面NSTabView具有正確大小和背景顏色。 不需要更多代碼,只要所有選項卡都具有透明背景即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM