我正试图通过我的故事板中的一个按钮来更新NSButton(图像)的图像。不过,NSButton图像并没有改变。
在这里,我的ViewController IBAction代码:
@IBAction func ButtonState(_ sender: NSSwitch) {
let stateOfButton = sender.state
if (stateOfButton.rawValue == 1){
testButton.isEnabled = true
}
else{
testButton.isEnabled = false
}
}这里有一个来自我的NSButton类的代码片段,修改如下:
override var isEnabled: Bool{
didSet{
if(self.isEnabled){
self.image = NSImage(named: "TestEnabled")
print("TestEnable")
}
else{
self.image = NSImage(named: "TestDisabled")
self.state = NSControl.StateValue(rawValue: 0)
print("NoEnable")
}
}打印语句是在切换开关时执行的,但是图像没有变化。
发布于 2020-11-02 23:16:39
请再次检查两个命名的图像是否都存在。下面是您的代码的修饰版本,它的工作原理与预期一样:
class ViewController: NSViewController {
@IBOutlet weak var button: MyButton!
@IBAction func switchClicked(_ sender: NSSwitch) {
button.isEnabled = sender.state == .on
}
}
class MyButton: NSButton {
override var isEnabled: Bool {
didSet {
image = isEnabled
? NSImage(named: NSImage.statusAvailableName)
: NSImage(named: NSImage.statusUnavailableName)
}
}
}

发布于 2020-10-14 12:52:17
对于在按钮中设置图像,您应该使用
yourButton.setImage(image, forState: .Normal)https://stackoverflow.com/questions/64353530
复制相似问题