как вызвать эту функцию в swift? - PullRequest
0 голосов
/ 23 мая 2018

У меня есть эта функция, но проблема в том, что я не знаю, как вызвать эту функцию на super.viewDidLoad

  func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
        if let text = namaTextField.text {
            if let floatingLabelTextField = textField as? SkyFloatingLabelTextField {
                if(text.characters.count < 3 || !text.contains("@")) {
                    floatingLabelTextField.errorMessage = "Invalid email"
                }
                else {
                    // The error message will only disappear when we reset it to nil or empty string
                    floatingLabelTextField.errorMessage = ""
                }
            }
        }
        return true
    }

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Это похоже на метод делегата из UITextFieldDelegate.Ваш класс контроллера представления должен соответствовать UITextFieldDelegate.

Методы делегата текстового поля не должны вызываться VC.Предполагается, что они будут вызваны текстовым полем.

Этот конкретный метод запрашивает у вас "должен ли я изменить этот диапазон текста на эту строку замены ?"и в методе вы выполнили некоторую логику и вернули true (вы отвечаете "да").

Этот метод будет вызываться всякий раз, когда текущий текст текстового поля изменяется, чтобы спросить вас ", если эта частьтекст действительно изменяется? ".

Текстовое поле будет вызывать этот метод, так что не беспокойтесь об этом.Единственное, что вам нужно сделать, это установить self как delegate:

namaTextField.delegate = self
0 голосов
/ 23 мая 2018

Это метод делегата textField, Каждый раз, когда вы, когда вы пытаетесь изменить текст в TextField, этот метод вызывается перед изменениями, поэтому можете выбрать, вносить изменения или нет.

И, по моему опыту, вы не можетепозвони по своему усмотрению.

...