Ios 在恢复时设置上一视图

Ios 在恢复时设置上一视图,ios,Ios,我有一个简单的iOS应用程序登录系统,当用户将焦点设置为passwordUITextField时,我会设置完整视图的动画,并将其移动到用户的视口中,以便用户可以看到密码字段。以下是我如何做到这一点的示例: -(BOOL)textFieldShouldBeginEditing:(UITextField *)textField { if(textField == self.txtPassword) { CGRect newFrame = self.view.frame

我有一个简单的iOS应用程序登录系统,当用户将焦点设置为password
UITextField
时,我会设置完整视图的动画,并将其移动到用户的视口中,以便用户可以看到密码字段。以下是我如何做到这一点的示例:

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    if(textField == self.txtPassword)
    {
        CGRect newFrame = self.view.frame;
        newFrame.origin.y -= 60;

        [UIView animateWithDuration:1.0 animations:^{
            self.view.frame = newFrame;
        }];
    }
    return YES;
}

-(BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
    if(textField == self.txtPassword)
    {
        CGRect newFrame = self.view.frame;
        newFrame.origin.y += 60;

        [UIView animateWithDuration:0.5 animations:^{
            self.view.frame = newFrame;
        }];
    }
    return YES;
}
现在我的问题是,若用户退出应用程序(不关闭),然后恢复它,我的视图将恢复正常,但textfield仍然集中在密码框中,所以开始执行的第一个动画将向下,而不是向上。我该如何解决这个问题?

试试这个

- (void)applicationWillResignActive:(UIApplication *)application {

     // Post notification from here to handle


    if ([urTextField isFirstResponder]) {

        [urTextField resignFirstResponder];


    }

}
或者继续学习本教程,通过通知中心访问urtextfield,然后在那里退出


简单的解决方案,在应用程序退出时删除键盘。 从用户体验的角度来看,用户离开了应用程序,应用程序被“清除”


我正在考虑这个问题,但是我如何从AppDelegate中的其他“活动”访问属性?是否有一个ViewController方法能够检测应用程序是否再次打开或加载?我真的很习惯Android,所以这个通知对我来说有点奇怪
- (void)applicationWillResignActive:(UIApplication *)application {
  [self.view endEditing:YES];
   CGRect newFrame = self.view.frame;
   newFrame.origin.y += 60;
   self.view.frame = newFrame;
}