1

UITextField に ontouch リスナーを設定しようとしていますが、まったく機能していません。コードは次のとおりです。

class SettingsVC: BaseVC {


    @IBOutlet weak var languageField: SkyFloatingLabelTextField!
    @IBOutlet weak var btnburgerMenu: UIButton!
    @IBOutlet weak var headerLbl: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()

        languageField.addTarget(self, action: "myTargetFunction:", for: UIControlEvents.touchDown)
    }

    func myTargetFunction(textField: SkyFloatingLabelTextField) {
        print("test")
    }

}

ここに私が持っているエラーがあります

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[IFO.SettingsVC myTargetFunction:]: unrecognized selector sent to instance 0x7fac8b61ff30'

例外の理由は何ですか?

4

2 に答える 2

1

そうあるべきだ――

languageField.addTarget(self, action: #selector(YourViewController.myTargetFunction(sender:)), for: UIControlEvents.touchDown)

またはのように使用します

languageField.addTarget(self, action: #selector(self.myTargetFunction(_:)), forControlEvents: .touchDown)

そして次のような関数を呼び出します

func myTargetFunction(_ textField: SkyFloatingLabelTextField) {
    print("test")
}
于 2017-01-24T12:08:57.783 に答える