我需要一个有符号“错误”的图形指示,即 0 是完美的,-1.0 在一个方向上是完全错误的,0.3 是部分正确的,但向右倾斜,1.0 在另一个方向上是完全错误的。有点像电压表。
我搜索和搜索,我发现最接近的是这个线程:Bi-directional level indicator,但这似乎突然结束了,提出的解决方案似乎不符合发帖人(或我)的要求。
我不会画画,但我尝试在 IB 中做一些粗略的模型来说明我的意思。外部区域的颜色会不同,最终实现中可能会有轴信息和其他内容。(显然我不允许发布图片。我会尝试 ascii art 代替)
发现:
[....|....]
左边完全错误:
[|||||....]
完全错在右边:
[....|||||]
部分错误:
[....|||..]
现在,我想我有几个选择:
子类 NSLevelIndicator(或 NSLevelIndicatorCell)我不介意这一点,但我不太确定该怎么做。通过在网上搜索,我找到了诸如更改样式(圆角,fx)和关键颜色反转等问题的答案,但这样的解决方案似乎意味着完全覆盖绘图功能,这意味着你失去了任何 NSLevelIndicator(Cell)正在为你做渐变和所有。我曾希望可以操纵各种变量并远离实际绘图。
创建一个自定义视图我不以任何方式图形化,但我想一个开始将是 Apples 自定义视图指南:Subclassing NSView。我想尽可能多地使用标准 UI 组件,因为我确信 Apple 的 UI 设计师比我好。我之前做过一个自定义的 2D 图形视图,我认为这还可以,但在我看来,这实际上更像是一个自定义视图。
借用别人的实现(或寻找灵感)我已经搜索但没有找到任何东西,这很奇怪,因为我认为这将是一个常见的设置。它不必像这样的 NSLevelIndicator 。它可以是电压表或类似的。
那么我该采取哪种方法呢?如果是 1 或 3,我需要一些指导。如果 2 我想知道 Apple 文档对于像我这样的新手来说是否足够,或者我是否需要更多信息。
PS:在同一篇文章中提出多个问题可能并不明智,但可以将其视为一个奖励问题。当继承 NS* 的东西时,你怎么知道要覆盖哪些方法?据我所知,Apple 的类参考仅列出了公共方法。我所做的是创建一个子类,然后输入“self”。看看会出现什么,但这不是很容易解决。