我创建了一个操作类来存储选择器,然后将addTarget添加到按钮上,但是当我单击它时,操作类中的方法没有被调用
class ItemCardAction {
static var shared: ItemCardAction = ItemCardAction()
private init() {
}
var action: Selector = #selector(ItemCardAction.shared.buttonPressed)
@objc func buttonPressed(_ sender: UIButton!) {
print("TEST")
AppEngine.shared.updateItem(tag: sender.tag)
AppEngine.shared.notigyAllObservers()
//self.updateUI()
}
}
添加目标button.addTarget(self, action: ItemCardAction.shared.action, for: .touchDown)
你需要的是
button.addTarget(ItemCardAction.shared, action: ItemCardAction.shared.action, for: .touchUpInside)
如果你仔细看addTarget
方法,第一个参数是target,当button接收(在这个特定的情况下)一个touch inside事件时,iOS会在target指定中寻找指定的selector(在action参数中指定)。在您的情况下,您将目标指定为self
,并且显然选择器在self
的范围内不可用,因此什么也不会发生:)