2012-03-20 76 views
-2

我按照本教程this tutorial避免隐藏在键盘后面的文本字段。问题在于我使用两个视图。 View1通过按下一个按钮来调用View2。两个视图都有文本框和下一个按钮。但问题是这样的代码工作的一个视图只意味着隐藏在键盘后面的UITextField

案例1

  1. 后,我开始它有一个的UITextField和一个按钮
  2. 我上的UITextField点击iPhone模拟器厂景负载,然后键盘弹出并且视图是可擦的,所以如果文本字段隐藏在键盘后面,它会向上移动。
  3. 然后我按下一个按钮,所以它需要我view2。
  4. 现在在view2上,我单击UITextField,弹出键盘,但文本字段位于键盘后面,无法将其向上滚动。

案例2

  1. 后,我开始它有一个的UITextField和一个按钮iPhone模拟器厂景负荷。
  2. 这次我只按了Next按钮而没有点击UITextField。所以现在我移动到view2
  3. 在视图2现在我按下UITextField,弹出键盘,我可以滚动文本框的键盘。

我不知道为什么发生这种情况,它应该适用于两个视图。作为链接给我创造了所需的文件MIBackgroundTapDelegate.h,

MIScrollView.h 
MIScrollView.m 
ScrollableViewController.h 
ScrollableViewController.m 
+1

让我困惑...... !!更好地解释.. !! – Sarah 2012-03-20 08:31:32

+0

解释一下更好的方法和地方你的意见方案图片 – Gargo 2012-03-20 08:46:06

回答

1

读你的问题,我认为你有文本框的问题下键盘弹出得到覆盖。您应该将这些UITextFilds放在UIScrollView中,并调用此委托方法。在Next/Return按钮上按下它会被调用,它将把你的光标移到第二个UITextField

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    NSInteger nextTag = textField.tag + 1; 
    UIResponder* nextResponder = [textField.superview viewWithTag:nextTag]; 

    if (nextResponder) 
{ 
    // Found next responder, so set it. 
    [nextResponder becomeFirstResponder]; 
    txtPswd.secureTextEntry=YES; 
    sv.contentOffset=CGPointMake(0, 150); //it will push your scrollview 150 pixels upwards. 
} 
else 
{ 
    // Not found, so remove keyboard. 
    [textField resignFirstResponder]; 
    sv.contentOffset=CGPointMake(0, 0); 
} 
    return NO; 
} 
+0

好的答案令人困惑的问题 – ingenspor 2012-08-28 01:23:20

+0

谢谢你.. :-) – 2012-08-28 10:34:53