#UIBarButtonItem 的选择器函数在按下时不触发
#selector function of UIBarButtonItem not firing when pressed
我创建了这个右栏按钮项目,但按下时没有任何反应。 #selector 没有触发,我知道 @objc 函数有效。
let button = UIButton(type: .custom)
button.setTitle("Uncheck All", for: .normal)
button.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .semibold)
button.setTitleColor(.bandzBlue(), for: .normal)
button.layer.cornerRadius = 5
button.backgroundColor = .white
button.frame = CGRect(x: 0, y: 0, width: 92, height: 14)
button.addTarget(self, action: #selector(self.addTapped), for: .touchUpInside)
let barButton = UIBarButtonItem(customView: button)
self.navigationItem.rightBarButtonItem = barButton
@objc func addTapped() {
stuff that works fine
}
可能实例的其余部分在您的代码执行时尚未初始化。您是否尝试过在 viewDidLoad
中这样做?如果没有,请尝试这样做:
override func viewDidLoad() {
super.viewDidLoad()
configureYourBarButtonHere()
}
我记得看到很多问题都强调了这个问题,这个解决方案。这是我现在能找到的几个:
尝试
button.setTitleColor(UIColor.gray, for: .normal)
而不是
button.setTitleColor(.bandzBlue(), for: .normal)
和UIButton(type: .system)
我创建了这个右栏按钮项目,但按下时没有任何反应。 #selector 没有触发,我知道 @objc 函数有效。
let button = UIButton(type: .custom)
button.setTitle("Uncheck All", for: .normal)
button.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .semibold)
button.setTitleColor(.bandzBlue(), for: .normal)
button.layer.cornerRadius = 5
button.backgroundColor = .white
button.frame = CGRect(x: 0, y: 0, width: 92, height: 14)
button.addTarget(self, action: #selector(self.addTapped), for: .touchUpInside)
let barButton = UIBarButtonItem(customView: button)
self.navigationItem.rightBarButtonItem = barButton
@objc func addTapped() {
stuff that works fine
}
可能实例的其余部分在您的代码执行时尚未初始化。您是否尝试过在 viewDidLoad
中这样做?如果没有,请尝试这样做:
override func viewDidLoad() {
super.viewDidLoad()
configureYourBarButtonHere()
}
我记得看到很多问题都强调了这个问题,这个解决方案。这是我现在能找到的几个:
尝试
button.setTitleColor(UIColor.gray, for: .normal)
而不是
button.setTitleColor(.bandzBlue(), for: .normal)
和UIButton(type: .system)