首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向NSCharacterSet添加delete键

如何向NSCharacterSet添加delete键
EN

Stack Overflow用户
提问于 2019-10-29 22:36:39
回答 1查看 123关注 0票数 0

我有一个只接受数字的文本字段,但是它不接受delete键,所以一旦输入就不能删除任何东西。

我试着添加了NSCharacters,但我似乎找不出delete键的字符。

代码语言:javascript
复制
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    if let x = string.rangeOfCharacter(from: NSCharacterSet.decimalDigits + Character.delete) {
        return true
    } else {
        return false
    }
}

它运行正常,我只是不能退格,因为我不接受它在代码中。

EN

回答 1

Stack Overflow用户

发布于 2019-10-29 22:44:10

你在以错误的方式思考它。"Delete“在本例中不是字符:

您可以简单地额外检查替换字符串是否为空(deleting =将字符串的一部分替换为"nothing")。

代码语言:javascript
复制
if string.isEmpty {
   return true
}

但是,您的数字检查不正确,并且在粘贴(例如粘贴"1a")时会失败。您的代码正在检查新字符串是否包含数字。下面的代码检查除了数字之外没有其他字符。

代码语言:javascript
复制
return string.rangeOfCharacter(from: CharacterSet.decimalDigits.inverted) == nil

这个检查实际上甚至对空字符串也有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58609617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档