我正在编写一个OS X应用程序(目标10.10,Xcode 6.1),我真的对我的自定义NSButtonCell子类感到困惑。似乎这里发生的事情不应该发生。我是OS X编程的新手,所以我想知道是否有人深入了解NSButtonCell的内部工作原理。
首先,什么似乎有效?
投诉清单:
-drawTitle:withFrame:inView:
以自定义颜色绘制标题,具体取决于单元格highlighted
。当单元格未突出显示时,此颜色应为#cccccc
,但它实际上是#d6d6d6
。-drawImage:withFrame:inView:
为细胞highlighted
选择正确的图像。这似乎有效,但是什么,NSButtonCell?开/关状态与突出显示有何不同?我尝试了很多类型选项,似乎没有一个更改按下按钮会暂时更改highlighted
并切换state
的事实。-drawWithFrame:inView:
被调用的次数超过指定的阈值。myBackgroundColor
和myAlternateBackgroundColor
。我没有使用backgroundColor
,因为我需要能够绘制自定义背景形状(填充矩形,填充圆圈等)。 highlighted
时使用备用背景颜色。这里的问题是备用背景颜色应为#93edbf
,但似乎是#a1eecb
!为了使其看起来像#93edbf
,我需要将颜色设置为#84ecb2
。它可能是什么?
我已经确认该单元格的controlTint
设置为NSClearControlTint
。我已经检查了背景过滤器,合成过滤器和内容过滤器,因为他们与此有关。
我知道Apple真的希望我们使用他们的原生外观和UI元素,但我从未想过他们会强行使用一些高亮色调。