我有两个NSButton,它们的状态和关闭状态都有图像。一次只能有一个活跃;单击一个,然后单击另一个来回更改属性。
问题是,如果我点击它时禁用了按钮,因此无法再次点击按钮,那么当按钮被禁用时图像会变暗 - 我不想让它变暗,我只想使用备用按钮图片。 另一方面,如果我只是启用按钮,但是在编程时只是在点击时不运行任何代码,那么当鼠标点击时会出现闪烁效果 - 当按钮不应该做任何事情时,这会分散注意力。
所以我要么禁止按钮在禁用时变暗,要么在按住鼠标按钮时阻止按钮改变按钮外观。
在阅读之后,听起来我需要继承NSButtonCell并覆盖 - (BOOL)imageDimsWhenDisabled来做前者。但是我无法弄清楚究竟如何对它进行子类化(我应该继承什么类型的NSButtonCell类)以及NSButton的“setCell”方法是否足以使用新的NSButtonCell类,或者如果我还需要子类化NSButton
对此的一些提示将不胜感激,或者可能有一种完全不同的方法可以实现我的目标。
答案 0 :(得分:3)
检查出来:
[btnInfo.cell setImageDimsWhenDisabled:NO];
答案 1 :(得分:2)
要禁用而不更改外观,请执行以下操作:
在MacOS上-NSButton:
唯一的选择是继承NSButton并重写mouseDown
函数
class RadioButton: NSButton {
override func mouseDown(with event: NSEvent) {}
}
在iOS上-UIButton:
简单禁用UserInteraction
mybutton.isUserInteractionEnabled = false