gpt4 book ai didi

ios - 如何验证 UITableviewcell 中的文本字段

转载 作者:行者123 更新时间:2023-11-30 12:37:24 25 4
gpt4 key购买 nike

我有一个自定义单元格:

class CustomOneCell: UITableViewCell {
@IBOutlet weak var middleLabel: UILabel!
@IBOutlet weak var TextField: UIText!

}

在我的ViewController中,我将其用作

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("CustomCellOne", forIndexPath: indexPath) as! CustomOneCell
cell.middleLabel.text = self.model.Fieldname

return cell
}

我的 UITableView 中有大约 15 个单元格,其中一个是电子邮件。现在我们来看看标签 Email 的 UITextField。我需要进行电子邮件验证。那么我该如何对该字段进行验证..?任何想法都会非常感激。对于我使用过的电子邮件验证。

func isValidEmail(testStr:String) -> Bool {
print("validate emilId: \(testStr)")
let emailRegEx = "^(?:(?:(?:(?: )*(?:(?:(?:\\t| )*\\r\\n)?(?:\\t| )+))+(?: )*)|(?: )+)?(?:(?:(?:[-A-Za-z0-9!#$%&’*+/=?^_'{|}~]+(?:\\.[-A-Za-z0-9!#$%&’*+/=?^_'{|}~]+)*)|(?:\"(?:(?:(?:(?: )*(?:(?:[!#-Z^-~]|\\[|\\])|(?:\\\\(?:\\t|[ -~]))))+(?: )*)|(?: )+)\"))(?:@)(?:(?:(?:[A-Za-z0-9](?:[-A-Za-z0-9]{0,61}[A-Za-z0-9])?)(?:\\.[A-Za-z0-9](?:[-A-Za-z0-9]{0,61}[A-Za-z0-9])?)*)|(?:\\[(?:(?:(?:(?:(?:[0-9]|(?:[1-9][0-9])|(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5]))\\.){3}(?:[0-9]|(?:[1-9][0-9])|(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5]))))|(?:(?:(?: )*[!-Z^-~])*(?: )*)|(?:[Vv][0-9A-Fa-f]+\\.[-A-Za-z0-9._~!$&'()*+,;=:]+))\\])))(?:(?:(?:(?: )*(?:(?:(?:\\t| )*\\r\\n)?(?:\\t| )+))+(?: )*)|(?: )+)?$"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
let result = emailTest.evaluateWithObject(testStr)
return result
}

我正在创建一个注册表单,该表单的所有内容都从 API 加载,甚至字段名称

最佳答案

我想说这里有两个问题。

  • 我们应在应用生命周期的哪个时刻执行验证?您可能希望在用户结束对文本字段的编辑时执行此操作。因此,您需要为文本字段提供一个委托(delegate),以便您可以检测textFieldShouldEndEditing(_:)、验证并防止在我们无效时结束编辑。

  • 完成此操作后,您如何知道这是电子邮件文本字段?显然,电子邮件文本字段需要与其他字段不同。一个简单的解决方案是为电子邮件文本字段提供一个您可以检查的 tag 值。所有其他文本字段可能具有 tag0,而此文本字段可能具有 tag1

这两件事都将在您的 cellForRowAt: 实现中进行配置(正是当前代码有空行的位置)。您知道哪一行是电子邮件行,因此必须对这一行的文本字段进行特殊处理。不过,请务必覆盖每一行,因为如您所知,单元格会被重复使用。

关于ios - 如何验证 UITableviewcell 中的文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42699424/

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