【问题标题】:Hide keyboard in applicationDidEnterBackground: - screenshot problem在 applicationDidEnterBackground 中隐藏键盘: - 截图问题
【发布时间】:2011-06-07 06:15:17
【问题描述】:

当主页按钮被按下时,我想隐藏键盘并将我的视图恢复到正常状态,这样当应用程序再次启动/前台时,没有选择文本字段并且键盘被隐藏。

我的应用委托有这个方法的实现:

- (void)applicationDidEnterBackground:(UIApplication *)application {
    [tabBarController.view endEditing:YES];
}

键盘确实被移除了,但我不明白的是:Apple 的文档说应用程序的快照是在方法返回之后拍摄的。然而,这对键盘向下滑动动画造成了问题。有时,当应用程序再次启动一小会儿时,它会在中途显示键盘。我假设屏幕截图是在动画完成之前拍摄的。

我会怎么做来解决这个问题,在applicationDidEnterBackground: 方法中引入一个短计时器?我想知道是否有“更清洁”的解决方案。

【问题讨论】:

  • 你有没有尝试在 applicationWillResignActive: 中做这些事情?
  • 是的,同样的问题。我已经将 endEditing 依次放在 applicationDidEnterBackground、applicationDidResignActive 和 applicationWillTerminate 中。我还尝试在它之后放置 [NSThread sleepForTimeInterval:0.5] - 这会导致当应用程序再次启动时显示黑屏,而不是半完成的动画。不确定哪个更好......

标签: cocoa-touch ios animation ios4 keyboard


【解决方案1】:

我没有尝试过,但是在你退出键盘之前关闭动画怎么样:

- (void)applicationDidEnterBackground:(UIApplication *)application {
    [UIView setAnimationsEnabled:NO];
     [tabBarController.view endEditing:YES];
}

如果这可行,您需要在 applicationWillEnterForeground 中重新打开它们

【讨论】:

    猜你喜欢
    • 2020-10-14
    • 1970-01-01
    • 2016-03-06
    • 2014-11-14
    • 2011-03-24
    • 2010-10-01
    • 2018-07-15
    • 1970-01-01
    • 2014-03-08
    相关资源
    最近更新 更多