NSProgressIndicator 的 setControlTint 没有效果

Posted

技术标签:

【中文标题】NSProgressIndicator 的 setControlTint 没有效果【英文标题】:NSProgressIndicator's setControlTint has no effect 【发布时间】:2011-10-11 00:46:02 【问题描述】:

我有一个非常简单的任务:当用户暂停进度时,将 NSProgressIndicator 的颜色更改为石墨,这是一个确定的进度条。我找到了setControlTint的方法,但是使用它之后就没有效果了。我也搜索了很多没有太多明确的答案。子类 NSProgressIndicator 和做一些自定义绘图是必须的吗?我只是想知道为什么这种方法存在并且没有关于正确使用的进一步文档或讨论。

非常感谢您的帮助:)

【问题讨论】:

【参考方案1】:

见文档:

NSProgressIndicator 文档 setControlTint:

设置接收器的控制色调。

- (void)setControlTint:(NSControlTint)controlTint

参数controlTint 一个常数,表示所需的控制色调。 NSCell 中描述了 controlTint 的有效值。

转到 NSCell 文档:

setControlTint

设置接收器的控制色调。

- (void)setControlTint:(NSControlTint)controlTint

参数 controlTint - 一个 Designated Initializers 值,用于指定接收器的色调。

指定初始化器

当子类化NSCell 时,您必须实现所有指定的初始化程序。这些方法是:initinitWithCoder:initTextCell:initImageCell:

换句话说,您必须继承 NSProgressIndicator 并实现所有指定的初始化程序。(见上文)。

【讨论】:

您好,我遇到了同样的问题,我无法找到您的解决方案。你能开发一下吗?我试过[toolbarViewProgressIndicator setControlTint:NSGraphiteControlTint],但它不起作用。 @Heisnberg,我扩展了我的答案。 它仍然对我不起作用,我不明白你的答案。 NSProgressIndicator 不继承自 NSCell,是吗? 是 NSProgressIndicator 不继承自 NSCell。在 NSCell 类中,我们只需要查看“controlTint 的有效值”

以上是关于NSProgressIndicator 的 setControlTint 没有效果的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 NSProgressIndicator 当前是不是为动画?

子类 NSProgressIndicator

不确定的 NSProgressIndicator 不会设置动画

NSButton 中的 NSProgressIndicator

是啥导致白色边框应用于系统菜单中显示的 NSProgressIndicator?

NSCell 子类化:绘制 NSProgressIndicator?