正如其他地方所討論的,NSTabView沒有setBackgroundColor方法,並且子類化NSTabView,並使用drawRect來控制它不再起作用 - 因爲它沒有繪製前10%,位於分段控件下方按鈕。帶背景顏色的NSTabView
現在我對解決這個問題的工作量感到有些驚訝,看到
- 代碼:https://github.com/dirkx/CustomizableTabView/blob/master/CustomizableTabView/CustomizableTabView.m
,我想知道如果我去了錯誤的道路。而如何做到這一點更好&簡單:
的NSSegmentStyleTexturedSquare似乎得到了我一個半透明的分段控制。這意味着我需要做額外的工作來隱藏任何邊框線(240,253行)。
有沒有更好的方法來做到這一點?即否定其透明度?
或者有沒有一種方法可以使用實際的/原始的分段選擇按鈕?
我發現我的顏色需要 - 如[NSColor windowBackgroundColour]沒有被設置爲任何有用的東西(即,一個是透明的) - 所以現在我硬編碼它們(線87,94)。
- 有沒有更好的方法來做到這一點?
我發現我需要一大堆蓬鬆的方法來保持同步(第128,134行等)。
- 這可以避免嗎?
我發現模仿巧妙的重新縮放意味着我需要不斷關注segemented控制框並刪除/調整大小。即使如此 - 它不如原來的
- 有沒有更好的方法來做到這一點比157行 - 即聽說調整大小?而不是一直這樣做?
當焦點從窗口中移除時,segementControl會變暗 - 不像真正的McCoy。
- 可以很容易地防止?有沒有一種便宜的方式來跟蹤這個?
或者這是錯誤的方法 - 我應該只關注這裏的透明孔 - 並讓NSTabViewItem繪製背景?但無論如何 - 那麼我仍然有Segemented控制框的問題 - 或者有辦法讓它再次成爲默認值。
- 嘗試此操作時 - 我在「真實」窗口背景顏色(即「透明」)中繪製的頂部20-30像素卡住,因此顏色不會一直運行到頂部或者在分段欄後面,直到擋板 - 但是會停止在分段控件底部以下8個像素。
反饋讚賞 - 因爲這感覺太離譜/次優這樣一個簡單的事情 - 非常感謝。布朗尼指向黑客/分叉github代碼:) :) :)作爲一行代碼運行超過一千字。
Dw。
嗯 - 嘗試過(見上文github上的鏈接,https://github.com/dirkx/CustomizableTabView/commit/bfbd5aeecaf13c65611d221a31cb644ed48108d4#diff-7d6a9b4a9a691023219e9dc3082910e6) - 設置以plain.XXX。並沒有cookie。 –
什麼是drawsBackground設置爲?標籤視圖的類型是NSNoTabsNoBorder?你確定NIB甚至在applicationDidFinishLaunching被調用的時候加載了嗎? – dgatwood
當然(並將代碼移動到setColour不會改變行爲)。問題仍然是背景'逃脫'tabview的內容視圖的好處。 –