我创建了一个自定义输入视图,其中包含几个 UIButton。所有这些按钮都调用一个 IBAction。
尽管我 100% 确定我在 IB 中正确设置了 IBAction,但没有调用 IBAction。为了证明这不会导致问题,我以编程方式向其中一个按钮添加了一个目标,但该操作仍然不会被调用。
import UIKit
protocol CashDeskInputDelegate: class {
func didReceiveInput(inputValue: String)
func didReceiveDoneMessage()
}
class CashDeskInputViewController: UIInputViewController {
// Delegate
weak var delegate: CashDeskInputDelegate?
// Actions
@IBAction func buttonTapped(sender: UIButton) {
print("buttonTapped")
guard let valueOfSender = sender.titleLabel?.text else {
dismissKeyboard()
return
}
valueOfSender == "Done" ? delegate?.didReceiveDoneMessage() : delegate?.didReceiveInput(valueOfSender)
}
// Test outlet
@IBOutlet weak var firstButton: UIButton!
override func viewDidLoad() {
// Add an action to the first button for testing purposes.
firstButton.addTarget(self, action: "buttonTapped:", forControlEvents: .TouchUpInside)
}
}
我还没有正确实现委托,但这不是重点。print("buttonTapped") 甚至不会出现。该方法没有被调用,我使用断点进行了测试。
有谁知道是什么导致了这个问题