Обновление: вот пример кода для тестирования на игровых площадках.
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let textField = UITextField()
textField.frame = CGRect(x: 0, y: 0, width: 200, height: 50)
textField.placeholder = "enter text here"
textField.center = view.center
view.addSubview(textField)
textField.addTarget(self, action: #selector(textChanged), for: .editingChanged)
}
@objc func textChanged(_ sender: UITextField) {
print(sender.text)
}
}
PlaygroundPage.current.setLiveView(ViewController())
Событие valueChanged
должно использоваться, чтобы определить, изменился ли text
. editingChanged
определяет, изменилось ли состояние UITextField
между состояниями редактирования или ожидания.
Заменить:
self.activationCodeTextField1.addTarget(self, action: #selector(self.textField1DidChange(_:)), for: UIControl.Event.editingChanged)
С:
activationCodeTextField1.addTarget(self, action: #selector(self.textField1DidChange), for: .valueChanged)
Дополнение : Вам не нужно вводить self
, если вы не находитесь внутри закрытия. И не нужно весь UIControl.Event.valueChanged
, вы можете просто поставить .valueChanged
, и все будет нормально.