Ios 如何处理长时间按下软键盘退格按钮?

Ios 如何处理长时间按下软键盘退格按钮?,ios,objective-c,swift,uitextfield,Ios,Objective C,Swift,Uitextfield,当我长按默认键盘上的退格按钮时,有时它会清除所有文本,是否有办法只清除一个字符您可以按如下方式处理委托方法中使用文本字段应更改字符的问题: func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { if string.isEmpty { if range.length !=

当我长按默认键盘上的退格按钮时,有时它会清除所有文本,是否有办法只清除一个字符

您可以按如下方式处理委托方法中使用文本字段应更改字符的问题:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    if string.isEmpty {
        if range.length != 1 {
            if let val: String = textField.text {
                if !val.isEmpty {
                    let newStr: NSString = val as NSString
                    if newStr.length > 0 {
                        let updatedString: String = newStr.substring(to: newStr.length - 1)
                        textField.text = updatedString
                    }
                }
            }

            return false
        }
    }

    return true
}

实现
UITextFieldDelegate的
textField(uU2;:shouldChangeCharactersIn:replacementString:)
方法,如下所示

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    if string.isEmpty {
        textField.text?.removeLast()
        return false
    }
    return true
}