Обнаружить возврат в пустом рабочем примере UITextField Swift - PullRequest
0 голосов
/ 12 июня 2019

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

В основном у меня есть приложение Quizz, показывается вопрос, и пользователю нужно заполнить несколько UITextFields, чтобы ответить на вопрос (т. Е. Если ответ ВЕНЕЦИЯ, будет отображаться 6 UITextFields, по 1 на букву).

Он смог обнаружить один символ в UITextFields, и как только пользователь нажмет клавишу, он перейдет к следующему UITextField. Я использую тег UITextField и метод becomeFirstResponder.

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

Я пробовал это решение от Джейкоба Карабальо ( Обнаружение возврата в пустом UITextField ), но я не уверен, как использовать его с моим существующим UITextField.

Например, я попробовал:

 // @IBOutlet weak var textField1: UITextField!
    @IBOutlet weak var textField1:MyTextField!

Но вызывая делегата

textField1.myDelegate = self

Вылетает

Я также замечаю, что, используя решение Джейкоба, я не смогу проверить, какой UITextField был использован, поскольку func textFieldDidDelete() не имеет UITextField в качестве параметра, и мне нужно будет проверить его тег т.е.

If textField.tag == 5 {
   textField4.becomeFirstResponder()
}

Помогите, пожалуйста?

1 Ответ

0 голосов
/ 12 июня 2019

Если вы используете решение Джейкоба, метод deleteBackward будет вызываться с текущим экземпляром UITextField.Таким образом, вы можете добавить протокол к этому классу UITextField и передать его на ваше усмотрение.Как то так:

protocol MyTextFieldDelegate: class {
   func backwardDetected(textField: MyTextField)
}

class MyTextField: UITextField {
   weak var myTextFieldDelegate: MyTextFieldDelegate?

   override func deleteBackward() {
     super.deleteBackward()

     self.myTextFieldDelegate?.backwardDetected(textField: self)
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...