如何在swift 3上设置文本字段最小字符数
我正在寻找一种方法来最小化文本字段中的字符。由于textfield用于用户名输入,我想让用户输入最少4个字符到最多30个字符。首先,我让textfield如何在swift 3上设置文本字段最小字符数,swift,string,textfield,uitextfielddelegate,Swift,String,Textfield,Uitextfielddelegate,我正在寻找一种方法来最小化文本字段中的字符。由于textfield用于用户名输入,我想让用户输入最少4个字符到最多30个字符。首先,我让textfieldshouldChangeCharactersIn设置textfield中的最大字符数。代码看起来不错,但当我想让用户如果用户名文本字段少于4个字符,应用程序会给他们错误或返回false func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange
shouldChangeCharactersIn
设置textfield中的最大字符数。代码看起来不错,但当我想让用户如果用户名文本字段少于4个字符,应用程序会给他们错误或返回false
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let currentString = usernameTextField.text!.characters.count ?? 0
if (range.length + range.location > currentString) {
return false
}
let newLength = currentString + string.characters.count - range.length
return newLength <= 30
}
func textField(textField:UITextField,shouldChangeCharacters范围:NSRange,replacementString:string)->Bool{
让currentString=usernameTextField.text!.characters.count±0
if(range.length+range.location>currentString){
返回错误
}
让newLength=currentString+string.characters.count-range.length
return newLength我将实现textFieldShouldEndEditing(:)
delegate方法。如果当前长度太短,则返回false
,并可选地显示某种消息/指示器,以便用户知道出了什么问题
我还将更新textField(uuu:shouldChangeCharactersIn:replacementString:)
以检查新长度是否太短。如果太短,请禁用保存按钮或其他适当的UI组件,让用户知道他们需要修复。func textField应返回(textField:UITextField)->Bool{
func textFieldShouldReturn(textField: UITextField) -> Bool {
let fieldTextLength = textField.text!.characters.count
if fieldTextLength < 4 || fieldTextLength > 30 {
//do something about it
}
self.view.endEditing(true)
return true
}
让fieldTextLength=textField.text!.characters.count
如果fieldTextLength<4 | | fieldTextLength>30{
//做点什么
}
self.view.endEditing(true)
返回真值
}
最后我真的不明白你的问题,但这应该可以解决!问题是当任何用户输入的usernameTextField少于4个字符,大于30个字符时,给他一个false。我做了最后一部分(大于30个字符)但是我找不到少于4个字符的解决方案。这不是正确的方法。即使文本字段太短或太长,此代码仍然允许键盘关闭。