我们如何禁止在textField上输入空值?
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let oldText = textField.text!
let stringRange = Range(range, in:oldText)!
let newText = oldText.replacingCharacters(in: stringRange, with: string)
doneBarButton.isEnabled = !newText.isEmpty
return true
}
还有其他方法吗?或使用其他textField委托方法来做到这一点?
答案 0 :(得分:0)
是的,这基本上就是您的操作方式。
或者,如果您只想知道该字段是否为空,只需找出结果的长度即可:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let length = (textField.text?.count ?? 0) + string.count - range.length
doneBarButton.isEnabled = length > 0
return true
}
您可能还希望将文本字段的enablesReturnKeyAutomatically
设置为true,以便除非该字段中有文本,否则键盘不会启用“返回”键。