ios - 获取 UITableView 中所有 UITextField 的数组

标签 ios swift uitableview

我有一个静态 TableView,用作用户输入的表单。我目前正在向每个 TextField 添加目标,以便我可以为 UIControl.Event.editingChanged

添加 textFieldDidChange(_ textField: UITextField)

我想将所有 TextFields 添加到一个数组中,这样我就可以遍历并为所有 TextFields 执行此操作,而无需手动为每个 TextFields 执行此操作。

我已经尝试了以下方法,但它不起作用:

var textFields = [UITextField]()
for view in self.view.subviews {
    if let textField = view as? UITextField {
        textFields.append(textField)
    }
}

任何帮助将不胜感激

最佳答案

在 UITableViewController 中创建一个 IBOutlet 集合连接,并使用该连接连接所有文本字段。然后,您可以将此 IBOutlet 集合用作 UITextField

的数组
class TableViewController: UITableViewController {

    @IBOutlet var textFields: [UITextField]!

    override func viewDidLoad() {
        super.viewDidLoad()
        textFields.forEach {
            $0.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)
        }
    }
    @objc func textFieldDidChange(_ textField: UITextField) {

    }
}

enter image description here

关于ios - 获取 UITableView 中所有 UITextField 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56346135/

相关文章:

ios - React Native ios构建成功,但应用程序包的路径错误

ios - 同一个 UIView 中的多个 UIPickerView

ios - 仅在按下 uitableviewcell 时显示 View

ios - 如何覆盖 reloadRowsAtIndexPaths?

ios - 使用Metal绘制矢量集

ios - 以编程方式将 stackview 与屏幕顶部对齐,不使用硬编码的 CGRect 和最小数量的约束

ios - 在 MFMailComposeViewController 的 messageBody 中查找字符串

arrays - Array of arrays of typealias 表达式类型不明确,没有更多上下文

ios - 如何将触摸从 UIScrollView 移动到 UITableViewCell?

ios - 在不重新加载单元格的情况下在 UITableViewCell 上设置编辑样式