Textfieldshouldreturn自动滚动屏幕

时间:2014-02-17 08:38:10

标签: ios objective-c uiview uitextfield

我使用下面的代码。因为看起来我有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; 
}

我还找到了一些关于如何通过设置坐标来滚动屏幕程序的内容。我认为不太可行。我希望它是“知道自动向下滚动的位置”的方式。

2 个答案:

答案 0 :(得分:0)

我希望在View中添加ScrollView,然后在UIScrollView的SubView中添加5个TextField,如

[scrollView addSubView:textField1];

接下来增加和减少set的scrollview内容。如

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
       [scrollView setContentOffset:CGPointMake(0, 230) animated:YES];
}

答案 1 :(得分:0)

我发现原因是我在介绍新按钮时添加了viewWillAppear方法。该代码没有调用super方法,因此只需添加1行代码即可解决问题

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    // your code
}