gpt4 book ai didi

iphone - becomeFirstResponder:自动滚动到成为第一响应者的 UIControl

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:52:14 25 4
gpt4 key购买 nike

我有一个包含一个部分和许多行的分组 UITableViewController。每个 cell 包含两个元素:一个带有描述的 UILabel 和一个用于输入的 UITextField。一种形式,我会说。

底部是一个“下一步”按钮,可以转到下一个 View 。但在此之前,我验证了 UITextField 的:如果用户没有填写字段,则该字段应该获得焦点,以便用户看到他需要输入内容。我试过这个:

[inputField becomeFirstResponder];

请记住,我按下的按钮是在我 View 的底部,想象UITextField在顶部。在这种情况下,该字段不会获得焦点,因为它太远了。现在,当我缓慢向上滚动并且该字段变得可见时,该字段成为第一响应者并获得光标 :-) 结论:becomeFirstResponder 有效,但并不完全符合我的要求。我不想用手指向上滚动,该字段应该自动获得焦点并可见。

有没有办法直接“跳”到我的领域?使用替代方法来代替 becomeFirstResponder?自动滚动到我的字段?

感谢您的帮助!

最佳答案

如果您知道包含要编辑的 UITextField 的单元格的索引,请使用



NSIndexPath* indexPath = [[NSIndexPath indexPathWithIndex:your_section_index] indexPathByAddingIndex:your_cell_index];
[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES]

在调用 becomeFirstResponder 之前。

如果单元格不在屏幕上,对于某些版本的 iOS,becomeFirstResponder 可能会失败。此外,某些版本在某些情况下会在 tableview 上执行额外的滚动(例如,如果 Apple 的代码确定响应者仍然会离开屏幕而无需更多滚动)。要解决这些问题,您可能需要在滚动动画完成后调用 become first responder。

关于iphone - becomeFirstResponder:自动滚动到成为第一响应者的 UIControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5042895/

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