我有一个静态 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) {
}
}
关于ios - 获取 UITableView 中所有 UITextField 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56346135/