0

内部にいくつかの UIButton を含むカスタム入力ビューを作成しました。これらのボタンはすべて、1 つの IBAction を呼び出します。

IBAction は呼び出されませんが、IB で適切に設定したことは 100% 確信しています。これが問題の原因ではないことを証明するために、プログラムでボタンの 1 つにターゲットを追加しましたが、アクションはまだ呼び出されません。

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") も表示されません。メソッドが呼び出されないだけです。ブレークポイントを使用してこれをテストしました。

この問題の原因を知っている人はいますか

4

0 に答える 0