如何让UITextField只允许整数和最大10位与Swift 5?



如何让UITextField只允许整数和最大10位数字。有人能帮我吗?

Hear Is My Code:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
{
let currentText = textField.text ?? ""
guard let stringRange = Range(range, in: currentText) else {
return false
}
let LettersOnly = CharacterSet.decimalDigits
let characterSet = CharacterSet(charactersIn: string)
let updateText = currentText.replacingCharacters(in: stringRange, with: string)
phonecounter.text = "(10 - updateText.count)"
updateText.count < 13 || LettersOnly.isSuperset(of: characterSet)
}

在textfield中只输入10个带有标签计数的整数。

一个简单的解决方案是检查非数字字符,如果location在<10

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
return string.rangeOfCharacter(from: CharacterSet.decimalDigits.inverted) == nil && range.location < 10
}

还可以更简单,指定数字键盘,然后检查长度是否足够,