Swift:textFieldShouldBeginEditing功能修复

时间:2018-07-12 07:12:37

标签: ios swift uitextfield

下面的代码删除了inputField中的最后一个字符,当我具有默认值时,它可以很好地工作。但是,如果textField为空,则会出现错误,因为没有要删除的最后一个字符。

如何使用if else进行检查?

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    textField.text?.removeLast()
    percentageField.text = textField.text
    return formViewController()?.textInputShouldBeginEditing(textField, cell: self) ?? true
}

4 个答案:

答案 0 :(得分:4)

removeLast必须用于非空字符串,因此请确保它不为空:

if let text = textField.text, !text.isEmpty {
    textField.text?.removeLast()
}

答案 1 :(得分:1)

您可以通过以下方式进行操作:

 if (!textField?.text?.isEmpty) {
   textField.text?.removeLast()
}

因此,只有在textField为空的情况下,才删除last

答案 2 :(得分:1)

在执行textField.text?.removeLast()之前,您可以检查文本框中是否有任何值。

您可以将代码更改为

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    if (!textField.text == "") {
        textField.text?.removeLast()
         percentageField.text = textField.text
    }
    return formViewController()?.textInputShouldBeginEditing(textField, cell: self) ?? true
}

答案 3 :(得分:0)

您可以使用:

if !(textField.text!.isEmpty) {
    textField.text?.removeLast()
}

有关更多详细信息,请参阅Apple文档: