gpt4 book ai didi

ios - 同一 View 中两个 UITextField 的不同条件

转载 作者:行者123 更新时间:2023-11-28 15:00:41 26 4
gpt4 key购买 nike

我在同一个 View 中有两个 UITextFields,我希望每个都有特定的条件。第一个只需要接受 42 个字符的长字符串,第二个只需要接受 0123456789.

我使用 textField(_:shouldChangeCharactersIn:replacementString:) 来设置第一个文本字段,但是如果两个条件都没有,我如何设置第二个文本字段?

文本字段:

@IBOutlet weak var firstTextField: UITextField!
@IBOutlet weak var secondTextField: UITextField!

第一个 TextField 条件:

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

guard let text = textField.text else { return true }
let newLength = text.count + string.count - range.length
return newLength == 42
}

第二个 TextField 条件 ?

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

let aSet = NSCharacterSet(charactersIn:".0123456789").inverted
let compSepByCharInSet = string.components(separatedBy: aSet)
let numberFiltered = compSepByCharInSet.joined(separator: "")
return string == numberFiltered
}

我不能使用 textField(_:shouldChangeCharactersIn:replacementString:) 两次,我可以这样做吗?

最佳答案

使用简单的喜欢

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if textField == firstTextField{ // its Identify your textfield
guard let text = textField.text else { return true }
let newLength = text.count + string.count - range.length
return newLength == 42
}else{
let aSet = NSCharacterSet(charactersIn:".0123456789").inverted
let compSepByCharInSet = string.components(separatedBy: aSet)
let numberFiltered = compSepByCharInSet.joined(separator: "")
return string == numberFiltered
}
return true
}

关于ios - 同一 View 中两个 UITextField 的不同条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48963545/

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