Swift 选择器方法未被调用
Swift selector method not being called
我创建了一个动作class来存储选择器,然后将Target添加到按钮,但是当我点击它时,动作class中的方法没有被调用
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,当按钮接收到(在这种特定情况下)触摸内部事件时,iOS会寻找指定的选择器(指定在动作参数中)在指定的目标中。在您的情况下,您将目标指定为 self
并且显然选择器在 self
的范围内不可用,因此没有任何反应:)
我创建了一个动作class来存储选择器,然后将Target添加到按钮,但是当我点击它时,动作class中的方法没有被调用
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,当按钮接收到(在这种特定情况下)触摸内部事件时,iOS会寻找指定的选择器(指定在动作参数中)在指定的目标中。在您的情况下,您将目标指定为 self
并且显然选择器在 self
的范围内不可用,因此没有任何反应:)