Сделать контроллер представления делегатом текстового поля и реализовать следующие методы:
extension ViewController: UITextFieldDelegate {
func textFieldDidChangeSelection(_ textField: UITextField) {
if textField.text?.isEmpty == true {
textField.text = "0"
}
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if textField.text?.isEmpty == true && string.isEmpty {
textField.text = "0"
return false
} else if textField.text == "0" {
textField.text = string
return false
}
return true
}
}
Если пользователь полностью удаляет текст, в текстовом поле будет отображаться «0». Если пользователь начинает печатать с начальным значением «0», «0» исчезнет и отобразит введенный пользователем текст.
Редактировать: чтобы установить контроллер представления делегатом текстового поля, щелкните правой кнопкой мыши ( или Ctrl + щелчок) и перетащите из текстового поля в контроллер представления в раскадровке:
![storyboard](https://i.stack.imgur.com/uWJjem.png)
и выберите делегата:
![delegate](https://i.stack.imgur.com/PqH98m.png)
Если вы не используете раскадровку или не хотите ее использовать, вы всегда можете сделать это программно.
override func viewDidLoad() {
super.viewDidLoad()
textField.delegate = self
}