未调用自定义 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() 方法中,它工作正常