I use a UITextField as a value picker in my app. However after picking value user can cut or paste other text in this UITextField. How can I prevent this?
This is how I add picker:
let picker = UIPickerView()
picker.dataSource = self
picker.delegate = self
textFieldServer.inputView = picker
This is delegate methods for picker:
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return Servers.get.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return Servers.get[row].name
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
loginPresenter.didSetServerId(serverId: row)
textFieldServer.text = Servers.get[row].name
}
Solved by setting UITextField delegate like this:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
return false
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With