文本字段应该返回自动滚动屏幕
Posted
技术标签:
【中文标题】文本字段应该返回自动滚动屏幕【英文标题】:Textfieldshouldreturn auto scroll screen 【发布时间】:2014-02-17 08:38:10 【问题描述】:我使用下面的代码。看来我有 5 个 uitextfields。现在由于某种原因,当我单击下一步时,视图实际上自动向下滚动,因此我可以看到我正在用键盘写入数据的文本字段。我以为这是默认设置。
我在 uiview 中添加了很多代码,并添加了一个链接到另一个视图的按钮。不知何故,在这个过程的中间,我的 uiview 失去了它的“下一次按下时自动滚动”机制。我尝试删除我的按钮并弄乱了一点,但找不到问题。
不确定我是否应该发布整个课程。
-(BOOL)textFieldShouldReturn:(UITextField*)textField;
[textField resignFirstResponder];
if (textField == self.firstOne)
[self.secondOne becomeFirstResponder];
else if (textField == self.secondOne)
[self.thirdOne becomeFirstResponder];
else if (textField == self.thirdOne)
[self.fourthOne becomeFirstResponder];
else if (textField == self.fourthOne)
[self.fifthOne becomeFirstResponder];
return NO;
我还发现了一些关于如何通过设置坐标以编程方式滚动屏幕的内容。在我看来不是很可行。我希望它是“知道自动向下滚动的位置”的方式。
【问题讨论】:
【参考方案1】:我发现原因是我在引入新按钮时添加了 viewWillAppear 方法。该代码没有调用 super 方法,因此只需添加 1 行代码即可解决问题
- (void)viewWillAppear:(BOOL)animated
[super viewWillAppear:animated];
// your code
【讨论】:
【参考方案2】:我希望在 View 中添加 ScrollView,下一步在 UIScrollView 的 SubView 中添加 5 个 TextField,例如
[scrollView addSubView:textField1];
接下来增加和减少set的scrollview内容。比如
- (void)textFieldDidBeginEditing:(UITextField *)textField
[scrollView setContentOffset:CGPointMake(0, 230) animated:YES];
【讨论】:
以上是关于文本字段应该返回自动滚动屏幕的主要内容,如果未能解决你的问题,请参考以下文章
输入文本时自动扩展的 Flutter 文本字段,然后在达到特定高度时开始滚动文本
滚动到滚动视图/滚动视图中的特定文本字段 当键盘在屏幕上时停止滚动