我在ViewController中有5个文本字段,我希望在删除手写数字后自动将它们设置为数字"0“。
在从故事板输入数字之前,默认设置为"0“(这是正确的)。但删除手写数字后,文本字段为空。我希望它再次为空时自动设置为"0“。而且不仅仅是占位符,还有实际的数字。
发布于 2020-04-13 21:58:36
将视图控制器作为文本字段的委托,并实现以下方法:
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键的同时单击),然后从文本字段拖动到情节提要中的视图控制器:

然后选择delegate:

如果你不使用情节提要或者不想使用它,你可以通过编程的方式来做。
override func viewDidLoad() {
super.viewDidLoad()
textField.delegate = self
}https://stackoverflow.com/questions/61188576
复制相似问题