禁用没有灰色图像的 NSButton
Disable NSButton without grayed image
我想禁用 NSButton
的用户交互。唯一可能的选择似乎是将 isEnabled
设置为 false:
button.isEnabled = false
...但问题是它为我的按钮图像提供了白色阴影。有什么办法可以去掉那个阴影吗?
一个选项不是禁用它,而是让它触发并在代码中相应地处理它。例如在禁用条件适用时什么也不做。
正如this answer所说,为hitTest(_:)
覆盖NSButton
和return nil。
如果要切换是否启用用户交互,请创建自定义变量,如果要启用按钮,请创建自定义变量 return super.hitTest(point)
。
class CustomButton: NSButton {
var isUserInteractionEnabled = true
override func hitTest(_ point: NSPoint) -> NSView? {
return isUserInteractionEnabled ? super.hitTest(point) : nil
}
}
你必须设置对应纽扣电池的imageDimsWhenDisabled
属性:
button.isEnabled = false
if let cell = button.cell as? NSButtonCell {
cell.imageDimsWhenDisabled = false
}
我想禁用 NSButton
的用户交互。唯一可能的选择似乎是将 isEnabled
设置为 false:
button.isEnabled = false
...但问题是它为我的按钮图像提供了白色阴影。有什么办法可以去掉那个阴影吗?
一个选项不是禁用它,而是让它触发并在代码中相应地处理它。例如在禁用条件适用时什么也不做。
正如this answer所说,为hitTest(_:)
覆盖NSButton
和return nil。
如果要切换是否启用用户交互,请创建自定义变量,如果要启用按钮,请创建自定义变量 return super.hitTest(point)
。
class CustomButton: NSButton {
var isUserInteractionEnabled = true
override func hitTest(_ point: NSPoint) -> NSView? {
return isUserInteractionEnabled ? super.hitTest(point) : nil
}
}
你必须设置对应纽扣电池的imageDimsWhenDisabled
属性:
button.isEnabled = false
if let cell = button.cell as? NSButtonCell {
cell.imageDimsWhenDisabled = false
}