【发布时间】:2021-09-23 09:39:24
【问题描述】:
我在 tableview 的 storyboard 中放置了一个 UITextField,并使用代码创建了多个文本字段(4 个)。
我的问题是在键盘上按回车键时我无法转到第二个 uitextfield。我在表格视图单元格中使用了以下代码
func textFieldShouldReturn(textField: UITextField) -> Bool {
let nextTag: NSInteger = textField.tag + 1
let nextResponder: UIResponder = textField.superview!.viewWithTag(nextTag)!
if (nextResponder != nil) {
nextResponder.becomeFirstResponder()
} else {
textField.resignFirstResponder()
}
return false
}
【问题讨论】:
-
您是否在属性检查器中检查了表格视图的 UItextfield 的标签?
-
你说 "... 在 tableview 中,并创建多个文本字段(4 个)..." -- 那么,你的意思是你有一个
UITextField在一个单元格中,并且您的表格中有 4 行?或者,您的意思是 单个单元格中有 4 个UITextFields? -
@DonMag 我使用情节提要在 tableview 单元格上放置了一个文本字段,并创建 4 行并将该文本字段添加到那里。
-
"... 使用情节提要的 tableview 单元格并创建 4 行..." -- 好的,这就是你的问题。在您的代码中:
textField.superview!.viewWithTag(nextTag)!、textField.superview是 该单元格的contentView。因此,它不会在不同的单元格中找到不同的视图。您可能应该使用闭包,以便您的代码可以告诉 tableView 控制器将下一行的文本字段设置为第一响应者。
标签: ios swift uitableview uitextfield