Как я могу переопределить метод делегата Swift, чтобы получить больше параметров? - PullRequest
0 голосов
/ 08 марта 2019

У меня есть форма с 3 UITextFields.Я хотел бы проверить пользовательский ввод для каждого поля, когда пользователь закончит ввод текста в этом конкретном поле.Прямо сейчас, у меня есть метод

validateAllFields()

, который я вызываю:

func textFieldDidEndEditing(_ textField: UITextField) {
    self.validateAllFields()
}

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

Есть ли способы переопределить метод делегата или расширить UITextField для получения большего количества параметров?Что-то вроде:

override func textFieldDidEndEditing(_ textField: UITextField,
                       textFieldIdentifier: TextFieldIdentifierEnum) {
    self.validate(textField: textField, basedOn: textFieldIdentifier)
}

Я подозреваю, что это можно сделать с расширением, но мне неясно, как поступить.

Спасибо за помощь!

1 Ответ

2 голосов
/ 08 марта 2019

Вам не нужно указывать в качестве параметра (_ textField: UITextField) текущее текстовое поле, которое пользователь меняет

Предположим, у вас есть

@IBOutlet weak var emailTexf:UITextField!
@IBOutlet weak var passTexf:UITextField!

func textFieldDidEndEditing(_ textField: UITextField) {
  self.validateAllFields(textField)
}
fun validateAllFields(_ current:UITextField) {

   if  emailTexf == current {

   }
   else if passTexf == current {

   } 
   else {  }  // etc
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...