swift4中的UITextfield验证 - 动态单元格
Posted
技术标签:
【中文标题】swift4中的UITextfield验证 - 动态单元格【英文标题】:UITextfield validation in swift4 - Dynamic cells 【发布时间】:2018-11-07 06:01:44 【问题描述】:我有一个表格(带有问题和文本字段的表格视图)。 它不是静态的,因为数据可能会根据用户选择的表单而改变。 所以我将这些问题和验证约束存储在字典中。 如何在用户按下提交之前验证这些字段? 代码如下:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let Cell:FormTableViewCell = self.tableView.dequeueReusableCell(withIdentifier: "cellformid") as! FormTableViewCell
let dict = questions?[indexPath.row]
Cell.form_question_label.text = dict?.question_name
Cell.form_answer_textfield.text = dict?.answer ?? ""
return Cell
//Submit Button Action
@IBAction func saveFormButtonPressed(_ sender: Any)
//Here I do operations to save a Array which contain all attended answers.
注意:当我按下提交按钮时,用户输入的数据正在保存到数据库中,但无法进行验证,因为如果某些问题无人看管,未存储在数据库中,也未附加到数组。所以我无法检查是否所有必填字段都已完成。
请提出一个方法..
【问题讨论】:
你想要逻辑来验证表单吗?我无法理解您要达到的目标。 @George 验证我的表单。请查看 Mateusz 提供的答案和我的评论。希望你能理解。如果我不清楚,对不起! 【参考方案1】:您可以添加到您的UITextField
:
textField.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)
然后验证答案:
@objc func textFieldDidChange(_ textField: UITextField)
//Validation
【讨论】:
这仅在文本字段被更改或编辑时有效。如果用户没有输入任何内容或根本没有调用 textFieldDidChange() 会发生什么? 如果UITextField
未被编辑或更改,您也可以直接通过textField.text
读取正确UITextField
的值【参考方案2】:
试试这个。
for view in self.view.subviews
if (view is UITextField)
var textfield = view as! UITextField
if (textfield.text == "")
// execute code
【讨论】:
以上是关于swift4中的UITextfield验证 - 动态单元格的主要内容,如果未能解决你的问题,请参考以下文章
Swift 4 或 Swift 5 中的 UITextView 用户输入文本验证:限制 Swift 中的特定字符
Swift 4 - UITextfield 边框半径颜色问题