正如其他地方所讨论的,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的内容视图的好处。 –