禁止空输入

时间:2019-02-13 16:58:10

标签: ios swift input uitextfield textfield

我们如何禁止在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委托方法来做到这一点?

1 个答案:

答案 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,以便除非该字段中有文本,否则键盘不会启用“返回”键。