Xcode - 将焦点放在文本字段上,成为第一响应者是不够的



目前,我在应用程序中的"Did End On Exit"上触发了一个方法(我知道这可能不是最好的方法,但我对Objective C和Xcode还很陌生,我只是在做我觉得舒服的事情)。

此方法从当前文本字段中退出第一响应程序,并将其应用于以后的文本字段。

我面临的问题键盘覆盖了下一个文本字段,因此用户不知道焦点在哪里,也不知道需要键入什么。

如何使键盘下移并实际显示当前活动的文本框?让某个东西成为第一响应者根本无法实现我想要的,除非我缺少实现的一部分。

这是我的简单方法:

- (IBAction)firstNameNext:(id)sender {
[firstNameTextField resignFirstResponder];
[surnameTextField becomeFirstResponder];
}

任何建议都是极好的。

在主视图中添加UIScrollView,然后将所有内容作为子视图添加到UIScrollView

现在,当特定的UITextField需要能够在视图中可见时,使用它的委托,如下所示:

注意:在.h文件中添加UITextFieldDelegate,如下

@interface yourViewController : UIViewController<UITextFieldDelegate>

还与文件所有者绑定

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;
{
   if(textField == yourSpecficTextField) //one u want move upwards
   {
      yourScrollView.contentOffset = CGPointMake(0,200); //required offset
   }
   ... //provide contentOffSet those who needed
   return YES;
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
   yourScrollView.contentOffset = CGPointMake(0,0); //make UIScrollView as it was before
}

如果您的键盘输入字段将被虚拟键盘覆盖,那么您需要将这些字段从虚拟键盘下移出。

要做到这一点,通常的方法是将控制器的视图设置为类似UIScrollView的可滚动视图。移动位于键盘下的内容提供了一种非常强大的方式来调整滚动视图并确保显示所需的字段。

最新更新