如何专注于表格视图中视图之外的文本字段?

Posted

技术标签:

【中文标题】如何专注于表格视图中视图之外的文本字段?【英文标题】:How to focus on textfield that is outside of view in tableview? 【发布时间】:2021-03-16 15:32:14 【问题描述】:

所以我在 cellForRowAt 中设置了以下代码,它工作完美,除非我已经说 10+ 个单元格并且用户按下 + 按钮添加一个新单元格,它不关注该 textField,因为它在外面风景。在使 textField 成为第一响应者之前,我尝试使用 tableView.scrollToRow 滚动到 tableView 的底部,但它仍然无法正常工作。我该怎么做?

                cell.textField.becomeFirstResponder()

【问题讨论】:

无法理解加号按钮在哪里 @UsamaAzam 我只有一个 + 按钮,它附加到数组并创建一个新行。创建行时,如果屏幕上的单元格过多并且在视图之外创建新行,则成为第一响应者将不起作用,因为它在视图之外。这有意义吗? 【参考方案1】:

如果具有textField 的单元格根本不可见,cell.textField.becomeFirstResponder() 将不会有任何影响,因此您应该尝试在用户点击“+”时将单元格带到可见区域

self.tableView.scrollToRow(at: IndexPath(row: row_of_cell_with_textField, section: 0), at: .middle, animated: true)

【讨论】:

我这样做了,但它不起作用。它滚动到底部,但我认为因为在我设置第一响应者时它还没有完成滚动,它仍然无法设置它 在这种情况下,您可以尝试使用相同的动画值作为假吗? self.tableView.scrollToRow(at: IndexPath(row: row_of_cell_with_textField, section: 0), at: .middle, animated: false) 我也试过了,对不起,没用 :( 必须有解决方案,但不知道为什么这不起作用

以上是关于如何专注于表格视图中视图之外的文本字段?的主要内容,如果未能解决你的问题,请参考以下文章

考虑到视图位于其之上,如何专注于谷歌地图上的位置?

jQuery:如何专注于输入文本字段,使光标位于文本的末尾?

专注于工具提示中的文本字段

专注于一个窗口形式的多个列表视图

SwiftUI Picker 专注于视图中的选定项目

可访问性:专注于视图