gpt4 book ai didi

iphone - 具有多个文本字段的组 TableView

转载 作者:行者123 更新时间:2023-11-28 22:50:37 25 4
gpt4 key购买 nike

我有一个包含 10 个部分的组 TableView ,每个部分有一个单元格,每个单元格内部都有一个文本字段。

当用户点击文本字段时,我将其父单元格滚动到底部,以便它正好位于键盘上方。

每个文本字段都有一个“下一步”返回键,因此当用户点击它时,下一个文本字段(在下面的单元格中)应该是第一响应者。

问题是:
假设用户点击索引 5 处的单元格的文本字段,这将使键盘弹出并且 tableview 将滚动,因此该单元格将位于键盘的正上方。
现在用户按下下一步按钮..
我想要发生的是让索引 6 处的单元格的文本字段成为第一响应者。
但是我如何获得这个文本字段??
如果我尝试使用 cellForRowAtIndexPath 获取单元格,我将得到 nil,因为该单元格是不可见的..

最佳答案

我想到了两个解决方案:

1) 你没有很多单元格,所以不要回收它们,在启动时创建它们并将它们放在一个数组中,这样你就可以很容易地得到它们,然后,当 tablview 要求单元格时,你拉它们在你的数组之外。

当你想转到下一个时,你同时告诉 tableview 滚动到这样那样的位置或单元格,然后你将单元格从数组中拉出,用一些屏幕外框架将它添加到你的 View 中,这样它就不能被看到,并使 textField 成为第一响应者(以保持键盘向上)。当 tableView 请求单元格时,您可能需要重置框架,或者同时重置框架并将其从 View 中删除。如果您发现需要这样做,您可能需要尽快再次使其成为第一响应者(向主队列发送一个 block ,以便文本字段永远不会退出第一响应者。

2) 类似地,当您想让单元格的 textField 成为第一响应者,并且它包含在可见单元格中时,您只需滚动并使其成为第一响应者。如果它不在 visibleCells 中,创建一个单元格,将它添加到上面的 View 中,像上面那样做第一响应者的事情,当你被要求提供那个单元格的索引时,提供那个单元格,可能会重置框架。

我已经使用屏幕外的文本字段来玩键盘的把戏(保持它,让它起来,等等 - 所以我知道这行得通)。对我来说不太确定的是 textField 是否在 View 中的技巧。

这让我想到了第三种方式。您将 UITextField 放在 View 的屏幕外。当你想切换时,单元格还不可见(即创建),你告诉屏幕外的文本字段是 firstReponder,然后跟踪 tableView 滚动,当它结束时,你想要的第一响应者的文本字段现在是可见的,这样您就可以在其上传输(即设置)firstResponder,同时保持键盘向上。

关于iphone - 具有多个文本字段的组 TableView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12078609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com