我想禁用NSButton
的用户互动。唯一可能的选择似乎是将isEnabled
设置为false:
button.isEnabled = false
...但问题是它给我的按钮图像留下了白色阴影。有没有办法摆脱那种阴影?
答案 0 :(得分:1)
您必须设置相应按钮单元格的imageDimsWhenDisabled
属性:
button.isEnabled = false
if let cell = button.cell as? NSButtonCell {
cell.imageDimsWhenDisabled = false
}
答案 1 :(得分:0)
一个选项不是禁用它,而是可以让它在代码中触发并相应地处理它。例如在禁用条件时不执行任何操作。
答案 2 :(得分:0)
正如this answer所述,覆盖NSButton
并为hitTest(_:)
返回nil。
如果您想切换是否启用了用户互动,请创建自定义变量并返回super.hitTest(point)
,如果您希望启用该按钮。
class CustomButton: NSButton {
var isUserInteractionEnabled = true
override func hitTest(_ point: NSPoint) -> NSView? {
return isUserInteractionEnabled ? super.hitTest(point) : nil
}
}