如果 UITextField 是在 UITableViewCell 中以编程方式创建的,如何退出第一响应者?
How to resign first responder if UITextField is programmatically created inside a UITableViewCell?
我创建了一个自定义 tableViewCell
,其中仅包含一个 textField
用于数据输入,就像在表单中一样。当用户点击完成时我将如何移动到表单中的下一个 cell/textField
并在表单完成时最终退出键盘?
问题更新:
我已经为我的自定义 tableViewCell
创建了一个带有 class 的单独文件。该单元格仅包含一个 textfield
,它被限制为适合整个单元格。我当前的解决方案是将每个单元格分配为 textField
代表并辞去每个单元格的第一响应者。
在我的 tableViewController
上,我将上述自定义单元格出队 4 次以获得简单的表单。但是我不确定如何访问 tableViewCell
文件中的 textField
以在用户点击完成时跳转到下一个 textField
或检查所有字段是否具有有效条目以保存信息。
我将如何处理您正在尝试做的事情的一个非常简短的版本是:
- 存储单元格中当前显示的
UITextField
个数组。
- 将文本字段附加到
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath)
中的数组
- 删除
func tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath)
中的文本字段
- 保留对
UITextField
用户交互的引用(通过 UITextFieldDelegate
)
- 每当用户按下 'Done' 在第 4 步设置的 UITextField 上调用
resignFirstResponder()
- 在可见数组
UITextField
中搜索已关闭文本字段的索引。
- 增加索引并在该索引处的 UITextField 上调用
beginFirstResponder()
。
我也遇到了同样的问题。因此,为了遇到这个问题,我在 tableView 的 Attribute Inspecter 中选择了选项 - Keyboard > Dismiss on Drag
(这将在您滚动 table 视图时退出文本字段)
或
您可以在 table view/tableview 个单元格上使用点击手势来退出回复。
我创建了一个自定义 tableViewCell
,其中仅包含一个 textField
用于数据输入,就像在表单中一样。当用户点击完成时我将如何移动到表单中的下一个 cell/textField
并在表单完成时最终退出键盘?
问题更新:
我已经为我的自定义 tableViewCell
创建了一个带有 class 的单独文件。该单元格仅包含一个 textfield
,它被限制为适合整个单元格。我当前的解决方案是将每个单元格分配为 textField
代表并辞去每个单元格的第一响应者。
在我的 tableViewController
上,我将上述自定义单元格出队 4 次以获得简单的表单。但是我不确定如何访问 tableViewCell
文件中的 textField
以在用户点击完成时跳转到下一个 textField
或检查所有字段是否具有有效条目以保存信息。
我将如何处理您正在尝试做的事情的一个非常简短的版本是:
- 存储单元格中当前显示的
UITextField
个数组。 - 将文本字段附加到
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath)
中的数组
- 删除
func tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath)
中的文本字段
- 保留对
UITextField
用户交互的引用(通过UITextFieldDelegate
) - 每当用户按下 'Done' 在第 4 步设置的 UITextField 上调用
resignFirstResponder()
- 在可见数组
UITextField
中搜索已关闭文本字段的索引。 - 增加索引并在该索引处的 UITextField 上调用
beginFirstResponder()
。
我也遇到了同样的问题。因此,为了遇到这个问题,我在 tableView 的 Attribute Inspecter 中选择了选项 - Keyboard > Dismiss on Drag
(这将在您滚动 table 视图时退出文本字段)
或
您可以在 table view/tableview 个单元格上使用点击手势来退出回复。