在简历上设置上一个视图

时间:2014-05-06 11:41:48

标签: ios

我有一个简单的iOS应用程序登录系统,当用户将焦点设置为密码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;
}

现在我的问题是如果用户退出应用程序(不关闭)然后恢复它,我的视图恢复正常但文本字段仍然集中在密码框,因此开始执行的第一个动画将向下移动到顶部。我该怎么解决这个问题?

2 个答案:

答案 0 :(得分:1)

试试这个

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

     // Post notification from here to handle


    if ([urTextField isFirstResponder]) {

        [urTextField resignFirstResponder];


    }

}

或者按照本教程的说明通过通知中心访问urtextfield&然后解雇那里

http://code.tutsplus.com/tutorials/ios-sdk-nsnotification--mobile-10619

答案 1 :(得分:1)

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

- (void)applicationWillResignActive:(UIApplication *)application {
  [self.view endEditing:YES];
   CGRect newFrame = self.view.frame;
   newFrame.origin.y += 60;
   self.view.frame = newFrame;
}