gpt4 book ai didi

ios - 如何在 Swift 中限制不同 UITextField 的文本长度?

转载 作者:可可西里 更新时间:2023-11-01 04:23:12 25 4
gpt4 key购买 nike

我有一个正在处理的 iOS Xcode 7.3 Swift2 项目。它有不同的 UITextFields,限制为 3 数字,特别是数字。它们被分配给 UITextFieldDelegate 并且运行良好。

这是我限制它们的地方:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
guard let text = textField.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
let limitLength = 3
if newLength > limitLength {
return false
}

let numberOnly = NSCharacterSet.init(charactersInString: "0123456789")
let stringFromTextField = NSCharacterSet.init(charactersInString: string)
let strValid = numberOnly.isSupersetOfSet(stringFromTextField)

return strValid
}

但是,一些 UITextFields 仍然需要限制为数字并且还限制为单个 数字,我如何在上面的部分中设置它,仅用于那些特定的 UITextFields

需要是个位数的UITextFields的名称是:

widthInches
lengthInches

我试着把它放在第一个守卫区之后,但没有成功:

guard let text2 = widthInches.text else { return true }
let newLength2 = text2.characters.count + string.characters.count - range.length
let limitLength2 = 3
if newLength2 > limitLength2 {
return false
}

最佳答案

您也可以尝试使用此代码限制文本字段

实际上我在这里使用文本字段标签。因为自定义文本字段。如果您使用像 TextfieldEffect 这样的自定义文本字段在这种情况下,标签将帮助您限制文本字段。

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool{

if textField.tag == txtCountryCode.tag{
let maxLength = 4
let currentString: NSString = textField.text!
let newString: NSString =
currentString.stringByReplacingCharactersInRange(range, withString: string)
return newString.length <= maxLength
}


if textField.tag == txtMobileNumber.tag{
let maxLength = 10
let currentString: NSString = textField.text!
let newString: NSString =
currentString.stringByReplacingCharactersInRange(range, withString: string)
return newString.length <= maxLength
}

return true
}

希望对您有所帮助。

关于ios - 如何在 Swift 中限制不同 UITextField 的文本长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37707603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com