ios - 我不希望代码在键盘上的删除按钮时工作
问题描述
单击删除按钮时,我想停用下面的代码。
我想将在文本字段中输入的值显示为 (XXX) XXX XXXX,但是当单击删除按钮时,由于插入,它不会被删除。
我怎样才能做到这一点?
我的代码:
extension CreateOrEditVC:UITextFieldDelegate{
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if number.text!.count == 1 {
number.text!.insert("(", at: number.text!.startIndex)
}
if number.text!.count == 4 {
number.text!.insert(")", at: number.text!.index(number.text!.startIndex, offsetBy: 4))
}
if number.text!.count == 5 {
number.text!.insert(" ", at: number.text!.index(number.text!.startIndex, offsetBy: 5))
}
if number.text!.count == 9 {
number.text!.insert(" ", at: number.text!.index(number.text!.startIndex, offsetBy: 9))
}
guard let textFieldText = number.text, let rangeOfTextToReplace = Range(range, in: textFieldText) else {
return false
}
let substringToReplace = textFieldText[rangeOfTextToReplace]
let count = textFieldText.count - substringToReplace.count + string.count
return count <= 14
}
}
解决方案
//there is a param 'replacementString string'
if string == "" {
//delete
return true
}
推荐阅读
- pandas - 将 vlookup 应用于 pandas 数据框的每个元素
- typescript - stackNavigator 中的模态反应本机博览会
- reactjs - 在 CardHeader Avatar={} 中测试更改复选框时遇到问题
- docker - 如何在 gitlab-ci 文件中安装 docker-compose 和 openjdk?
- c# - Listview 绑定适用于共享运行时,但在禁用时不起作用(Xamarin Forms / Visual Studio)
- python - Pycharm 中未显示 Tkinter 窗口
- python-sphinx - 使用 autodoc 和 Sphinx 的 RTD 主题中单参数函数的项目符号列表样式?
- python - 对mac上多个版本的pip感到困惑
- php - 调用未定义的方法 PhpOffice\PhpSpreadsheet\Spreadsheet::listWorksheetNames
- python - 如何查找列表列表中的哪些项目等于另一个列表