我有UItableView
个自定义UItableViewCell
。每个单元格中都有UItextField
个。现在我希望用户能够通过点击键盘上的下一个按钮移动到下一个文本字段。
我已经知道我们可以在 cellForRowAtIndexPath
cell.textField.tag = indexPath.row
然后转移到下一个字段
if let nextField = self.view.viewWithTag(textField.tag + 1) as? UITextView {
nextField.becomeFirstResponder()
} else {
textField.resignFirstResponder()
}
但在我的情况下,我在UItableview 中有多个部分,所以这个
cell.textField.tag = indexPath.row
没有工作。任何线索?提前谢谢。
答案 0 :(得分:0)
你也可以这样做 1)将textfield的标签作为section&的组合。行
textfield.tag = indexPath.section*1000 + indexPath.row
并使用打击代码获取它:
let Row = textfield.tag % 1000
let Section = (textfield.tag - Row)/1000
或 2)您可以获取文本字段所在的TableView单元格的节和行值,在任何textfield的委托方法中使用以下代码:
let item:UITableViewCell = textField.superview?.superview as! UITableViewCell
let indexPath = table_view.indexPath(for: item)
print(" Section :\(indexPath?.section)")
print(" Row :\(indexPath?.row)")
检查部分&行值,然后设置textfield的becomeFirstResponder,条件要求(根据你的节和行数)
答案 1 :(得分:0)
感谢所有人的回答我的错误我无法理解我通过稍微调整我的数据源来做到这一点
func getBaseValueCount(currentSection:Int) -> Int {
var count = 0
if currentSection == 0 {
return count
}
else{
for i in 0..<currentSection {
count = count + (self.formSections[i].fields?.count)!
}
}
return count
}
然后在cellForRowAtIndexPath
中 cell.txtAnswer.tag = self.getBaseValueCount(currentSection: indexPath.section) + indexPath.row
再次感谢。