我目前正在开发一款带注册视图的iPhone 4应用程序。用户可以专注于UITextField,我的代码将向上移动视图以防止键盘覆盖文本字段。但是如果应用程序背景并再次返回到前台,键盘仍然处于运行状态,文本字段仍然处于焦点状态,但视图现在又以原始状态向下移动。这掩盖了文本领域。
发生了什么事?当应用程序返回到前台时,如何使视图保持放置或隐藏键盘?
更新:
- 在新的iOS5上对此进行了哪些更改?
答案 0 :(得分:0)
您可以尝试在app delegate中的applicationDidEnterBackground中执行某些操作,例如
NSLog(@"%@", [self.viewController.YOURTEXTFIELD isFirstResponder]);
if ([self.viewController.YOURTEXTFIELD isFirstResponder]) {
[self.viewController.YOURTEXTFIELD resignFirstResponder];
}
“isFirstResponder”检查键盘当前是否在此视图中使用,如果是,则返回YES,如果不是,则返回NO。
NSLog就在那里,你知道传递给if语句的是什么。
答案 1 :(得分:0)
我有下一个解决方案:
在AppDelegate中
- (void)applicationDidBecomeActive:(UIApplication *)application
{
// 1. get access to ViewController which is on top
// In my case, I have navigation controller in root
UIViewController* current_controller = [self.rootNavController.viewControllers lastObject];
// 2. loop all uitextfield.
for (UITextField* o_txt in [current_controller.view subviews]) {
[o_txt resignFirstResponder];
}
}
看起来像“热修复”)