想要将文本域输入限制为仅 A-Z、a-z、0-9、""和 -。目前有:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
{
if self.isNumericTextInput{
let allowedCharacters = CharacterSet.decimalDigits
let characterSet = CharacterSet(charactersIn: string)
if allowedCharacters.isSuperset(of: characterSet) && returnFlag{
return true
} else{
return false
}
} else{
// Allow only alphanumerics, whitespace and hyphens
}
return
}
最佳答案
虽然回答晚了,但可能对某人有用。
swift 3:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
/// 1. replacementString is NOT empty means we are entering text or pasting text: perform the logic
/// 2. replacementString is empty means we are deleting text: return true
if string.characters.count > 0 {
var allowedCharacters = CharacterSet.alphanumerics
allowedCharacters.insert(charactersIn: " -") // "white space & hyphen"
let unwantedStr = string.trimmingCharacters(in: allowedCharacters)
return unwantedStr.characters.count == 0
}
return true
}
注意:这也适用于将字符串粘贴到文本字段中。如果粘贴的字符串包含不需要的字符,则不会在文本字段中显示。
关于Swift 3 - 将文本字段限制为字母数字(带空格和连字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44123918/