我只想接受文本字段中的A到Z。不要接受swift 5中的数字
我创建了一个用户名文本字段,我希望我的文本字段不接受swift 5中的数字 我试过了,但没用我只想接受文本字段中的A到Z。不要接受swift 5中的数字,swift,textfield,Swift,Textfield,我创建了一个用户名文本字段,我希望我的文本字段不接受swift 5中的数字 我试过了,但没用 func OnlyCharacter(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { let allowedcharacters = CharacterSet.decimalDigits let characterset
func OnlyCharacter(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let allowedcharacters = CharacterSet.decimalDigits
let characterset = CharacterSet(charactersIn: string)
return allowedcharacters.isSuperset(of: characterset)
}
您只需将
CharacterSet.decimalDigits
更改为NSCharacterSet.letterCharacterSet()
请不要仅用代码回答,添加一些上下文,说明此答案如何解决问题。这不仅对OP很有帮助,而且对这个问题和答案的未来读者也很有帮助。请不要只用代码来回答,添加一些关于这个答案如何解决问题的上下文。这不仅对OP有帮助,而且对这个问题和答案的未来读者也有帮助
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if string.rangeOfCharacter(from: .letters) != nil {
return true
} else {
return false
}
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let non_digits = NSCharacterSet.letters.inverted
let range = string.rangeOfCharacter(from: non_digits)
if range != nil { // found an invalid
return false
}
return true
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let characterSet = CharacterSet.letters //accept letters only here
if string.rangeOfCharacter(from:characterSet.inverted) != nil {
return false
}
return true
}