应用程序从暂停状态返回时隐藏键盘

时间:2011-10-27 17:39:58

标签: ios objective-c cocoa-touch persistence

我有一个应用程序,登录屏幕通过在显示键盘时调整主视图的大小来移动用户名/密码字段。

问题是,如果我在键盘可见的情况下暂停应用程序(单击主页按钮)然后将应用程序恢复,它将“重置”视图大小(根据NIB),但键盘仍然会可见,意味着“形式”的一部分被键盘隐藏。

有没有人建议在应用程序从挂起状态返回时隐藏键盘的最佳方法(我知道在我的应用委托中调用applicationDidBecomeActive),或者确保视图保持调整大小?

提前致谢!

2 个答案:

答案 0 :(得分:3)

我认为您可以使用NSNotificationCenter

来实现这一目标

在视图控制器中,在viewWillAppear中调用:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appWasResumed) name:UIApplicationWillEnterForegroundNotification object:nil]; 

并实施一个方法:

-(void) appWasResumed
{
    [textField1 resignFirstResponder];
    //If you are changing positions of items, you might want to do that here too.
}

我认为剩下的应该自动处理。

如果没有自动处理,请尝试将其添加到applicationDidBecomeActiveapplicationWillEnterForeground上的AppDelegate:

[[NSNotificationCenter defaultCenter] postNotificationName:UIApplicationWillEnterForegroundNotification object:nil];

我没有经常使用NSNotificationCenter,因此有些语法可能有误。查看我在顶部提供的链接以进行确认。

答案 1 :(得分:3)

订阅UIApplicationDidEnterBackgroundNotification通知(通过addObserver:selector:name:object:的{​​{1}}选择器)并致电NSNotificationCenter

我不确定它是否会顺利播放,因为键盘在隐藏时总是会动画,但至少它会完成工作。