将 TextField 输入限制为大写字母、数字和 6 个字符限制?
Limit TextField Input to Capitals letters, Numbers and Character limit of 6?
我在网上搜索了很多关于限制TextFields的例子,但是我找不到任何关于限制多因素的例子。我正在使用的代码弄乱了输入,我不知道为什么。
这是我的代码:
(注意:我已经设置了delegate)
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
guard let text = LPinput.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
LPinput.text = (textField.text! as NSString).replacingCharacters(in: range, with: string.uppercased())
return newLength <= limitLength
}
这是我在 TextField 中输入的内容:
food
下面是文本字段中显示的内容:
FfOoOoD
请帮忙!
正如@rmaddy 所说,问题是您正在修改 UITextField.text
属性 和 return 之后为真,这会导致您的问题中出现重复行为,所以我更改它并首先检查 textLength 然后修改文本并且 return 始终为 false 以避免添加重复字符尝试使用此代码
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
guard let text = LPinput.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
if(newLength <= limitLength)
{
LPinput.text = (textField.text! as NSString).replacingCharacters(in: range, with: string.uppercased())
}
return false
}
希望对您有所帮助
我在网上搜索了很多关于限制TextFields的例子,但是我找不到任何关于限制多因素的例子。我正在使用的代码弄乱了输入,我不知道为什么。
这是我的代码: (注意:我已经设置了delegate)
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
guard let text = LPinput.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
LPinput.text = (textField.text! as NSString).replacingCharacters(in: range, with: string.uppercased())
return newLength <= limitLength
}
这是我在 TextField 中输入的内容:
food
下面是文本字段中显示的内容:
FfOoOoD
请帮忙!
正如@rmaddy 所说,问题是您正在修改 UITextField.text
属性 和 return 之后为真,这会导致您的问题中出现重复行为,所以我更改它并首先检查 textLength 然后修改文本并且 return 始终为 false 以避免添加重复字符尝试使用此代码
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
guard let text = LPinput.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
if(newLength <= limitLength)
{
LPinput.text = (textField.text! as NSString).replacingCharacters(in: range, with: string.uppercased())
}
return false
}
希望对您有所帮助