【问题标题】: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; 
}

我还发现了一些关于如何通过设置坐标以编程方式滚动屏幕的内容。在我看来不是很可行。我希望它是“知道自动向下滚动的位置”的方式。

【问题讨论】:

    标签: ios objective-c uiview uitextfield


    【解决方案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];
      }
      

      【讨论】:

        猜你喜欢
        • 2011-01-19
        • 2012-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多