我正在尝试学习如何创建按钮目标操作,但是,当我按下按钮时,我收到了LLDB错误,并且我被告知这是一个“无法识别的选择器发送到课堂”。
我在哪里错了?
StatusCell.swift:
let phoneIcon: UIButton = {
let iv = UIImageView()
iv.translatesAutoresizingMaskIntoConstraints = false
iv.image = UIImage(named: "Phone3")?.imageWithRenderingMode(.AlwaysTemplate)
let phoneBtn = UIButton(type: .Custom)
phoneBtn.addTarget(CallButton.self, action: #selector(CallButton.buttonPressed(_:)), forControlEvents: .TouchDown)
phoneBtn.addTarget(CallButton.self, action: #selector(CallButton.buttonReleased(_:)), forControlEvents: .TouchUpInside)
phoneBtn.translatesAutoresizingMaskIntoConstraints = false
phoneBtn.setImage(iv.image!, forState: .Normal)
phoneBtn.tintColor = UIColor(r: 224, g: 224, b: 224)
return phoneBtn
}()
这是我调用buttonPressed和buttonReleased的CallButton类。
class CallButton: UIControl {
func buttonPressed(sender: AnyObject?) {
print("Pressed")
}
func buttonReleased(sender: AnyObject?) {
print("Let go")
}
}
答案 0 :(得分:1)
参数target
的值必须是CallButton
的实例,而不是类型本身。
答案 1 :(得分:0)
您正在设置类本身,而不是一个实例,作为操作的目标。
因此,您设置为操作的方法应该作为类方法实现,不是实例方法:
class func buttonPressed(sender: AnyObject?) {
print("Pressed")
}