不调用自定义UIControll目标操作

时间:2017-01-29 18:06:21

标签: ios swift custom-controls uicontrol

我正在使用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")
}

3 个答案:

答案 0 :(得分:0)

我认为您需要像这样引用选择器:#selector(checkMarkAction:)以匹配它对Objective C运行时的显示方式。

目标操作模式(以及Swift中的其他动态功能)是在Objective C运行时之上实现的,因此它正在寻找Swift方法的Objective C样式名称。

答案 1 :(得分:0)

你试过这个吗?

checkbox.addTarget(self, action: #selector(checkMarkAction), for: .valueChanged)

答案 2 :(得分:0)

我刚刚发表了这个声明

checkbox.addTarget(self, action: #selector(checkMarkAction(_ :)), for: .valueChanged)
awakeFromNib()方法中的

,它运行正常