如何访问 swift 5 中 tableview 单元格内的 textview 值?
How to access textview value which is inside tableview cell in swift 5?
我有一个 viewcontroller,里面有一个 table 视图和 2 个保存和取消按钮。
在 tableview 单元格中,我有一个 textview。在 textview 中添加一些文本后,我想显示该文本。我不确定如何在单击保存按钮时获取 table 查看文本。 (行数可能是动态的)。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cell = tableview.dequeueReusableCell(withIdentifier: "SummaryManualEditContentCell", for: indexPath) as? SummaryManualEditTableCell {
cell.txtAnswers.text = "enter text here"
return cell
}
return UITableViewCell()
}
@IBAction func btnSave(_ sender: Any) {
print("textviewText1 + textviewText2 + and so on ")
}
除了单击按钮之外,我还想将所有文本多个文本视图添加到一个字符串中。
有什么干净和最好的方法来实现这个目标吗?
感谢您的帮助!
您需要获取要获取其文本的单元格的indexPath
获取该索引路径的单元格,如
@IBAction func btnSave(_ sender: Any) {
let indexPath = IndexPath(row: 0, section: 0)
if let cell = tableView.cellForRow(at: indexPath) as? SummaryManualEditTableCell {
let text = cell.txtAnswers.text
}
}
如果您有多个带有 textFields 的单元格,您可以循环获取所有字段
@IBAction func btnSave(_ sender: Any) {
var allTextViewsText = ""
for i in 0...5{
let indexPath = IndexPath(row: i, section: 0)
if let cell = tableView.cellForRow(at: indexPath) as? SummaryManualEditTableCell {
allTextViewsText += cell.txtAnswers.text
}
}
print(allTextViewsText)
}
但请记住,此方法仅适用于可见单元格,否则对于不可见单元格,您将得到 nil
我建议您在每个具有 textView
的单元格中实现 textView:shouldChange,并委托给 tableView 的 viewController。当单元格中的文本发生更改时,委托应将更改传播到 viewController,后者会将值保存在变量中。
然后,当您按下保存按钮时,您只需从变量中获取值。
我有一个 viewcontroller,里面有一个 table 视图和 2 个保存和取消按钮。 在 tableview 单元格中,我有一个 textview。在 textview 中添加一些文本后,我想显示该文本。我不确定如何在单击保存按钮时获取 table 查看文本。 (行数可能是动态的)。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cell = tableview.dequeueReusableCell(withIdentifier: "SummaryManualEditContentCell", for: indexPath) as? SummaryManualEditTableCell {
cell.txtAnswers.text = "enter text here"
return cell
}
return UITableViewCell()
}
@IBAction func btnSave(_ sender: Any) {
print("textviewText1 + textviewText2 + and so on ")
}
除了单击按钮之外,我还想将所有文本多个文本视图添加到一个字符串中。 有什么干净和最好的方法来实现这个目标吗?
感谢您的帮助!
您需要获取要获取其文本的单元格的indexPath 获取该索引路径的单元格,如
@IBAction func btnSave(_ sender: Any) {
let indexPath = IndexPath(row: 0, section: 0)
if let cell = tableView.cellForRow(at: indexPath) as? SummaryManualEditTableCell {
let text = cell.txtAnswers.text
}
}
如果您有多个带有 textFields 的单元格,您可以循环获取所有字段
@IBAction func btnSave(_ sender: Any) {
var allTextViewsText = ""
for i in 0...5{
let indexPath = IndexPath(row: i, section: 0)
if let cell = tableView.cellForRow(at: indexPath) as? SummaryManualEditTableCell {
allTextViewsText += cell.txtAnswers.text
}
}
print(allTextViewsText)
}
但请记住,此方法仅适用于可见单元格,否则对于不可见单元格,您将得到 nil
我建议您在每个具有 textView
的单元格中实现 textView:shouldChange,并委托给 tableView 的 viewController。当单元格中的文本发生更改时,委托应将更改传播到 viewController,后者会将值保存在变量中。
然后,当您按下保存按钮时,您只需从变量中获取值。