未调用自定义 UIControll 目标操作
Custom UIControll target action is not called
我正在使用 M13Checkbox,它没有发送任何事件来调用我的目标操作
let checkbox: M13Checkbox = {
let checkbox = M13Checkbox()
checkbox.cornerRadius = 1
checkbox.boxType = .square
checkbox.stateChangeAnimation = .bounce(.fill)
checkbox.tintColor = UIColor(red: 66/255, green: 172/255, blue: 232/255, alpha: 1)
checkbox.checkmarkLineWidth = 4
checkbox.addTarget(self, action: #selector(checkMarkAction(_ :)), for: .valueChanged)
return checkbox
}()
func checkMarkAction(_ sender: M13Checkbox) {
print("M13CheckboxAction")
}
我认为您需要像这样引用选择器:#selector(checkMarkAction:)
以匹配它在 Objective C 运行时的显示方式。
目标操作模式(以及 Swift 中的其他动态功能)是在 Objective C 运行时之上实现的,因此它正在寻找您的 Swift 方法。
你试过这个吗?
checkbox.addTarget(self, action: #selector(checkMarkAction), for: .valueChanged)
我刚刚移动了这条语句
checkbox.addTarget(self, action: #selector(checkMarkAction(_ :)), for: .valueChanged)
在 awakeFromNib()
方法中,它工作正常
我正在使用 M13Checkbox,它没有发送任何事件来调用我的目标操作
let checkbox: M13Checkbox = {
let checkbox = M13Checkbox()
checkbox.cornerRadius = 1
checkbox.boxType = .square
checkbox.stateChangeAnimation = .bounce(.fill)
checkbox.tintColor = UIColor(red: 66/255, green: 172/255, blue: 232/255, alpha: 1)
checkbox.checkmarkLineWidth = 4
checkbox.addTarget(self, action: #selector(checkMarkAction(_ :)), for: .valueChanged)
return checkbox
}()
func checkMarkAction(_ sender: M13Checkbox) {
print("M13CheckboxAction")
}
我认为您需要像这样引用选择器:#selector(checkMarkAction:)
以匹配它在 Objective C 运行时的显示方式。
目标操作模式(以及 Swift 中的其他动态功能)是在 Objective C 运行时之上实现的,因此它正在寻找您的 Swift 方法。
你试过这个吗?
checkbox.addTarget(self, action: #selector(checkMarkAction), for: .valueChanged)
我刚刚移动了这条语句
checkbox.addTarget(self, action: #selector(checkMarkAction(_ :)), for: .valueChanged)
在 awakeFromNib()
方法中,它工作正常