当应用程序激活时,我们如何找到当前哪个视图是第一响应者。我知道应用程序委托 applicationWillEnterForeground 和 applicationDidBecomeActive 将被调用,我如何使用它来亲密查看哪个是第一响应者。
我用谷歌搜索,堆栈溢出没有找到确切的答案。有什么想法的朋友。。
当应用程序激活时,我们如何找到当前哪个视图是第一响应者。我知道应用程序委托 applicationWillEnterForeground 和 applicationDidBecomeActive 将被调用,我如何使用它来亲密查看哪个是第一响应者。
我用谷歌搜索,堆栈溢出没有找到确切的答案。有什么想法的朋友。。
获取对 iOS 应用程序中最顶层视图/窗口的引用
topMostView = [[[[UIApplication sharedApplication] keyWindow] subviews] lastObject];
请参阅getting-reference-to-the-top-most-view-window-in-ios-application链接。
当应用程序从后台返回时,编辑对当前视图执行的启动操作
Add BOOL applicationFromBackground; make its property in appDelegate.
Intially it will be applicationFromBackground = FALSE; in application didFinishLaunchingWithOptions method;
现在应用程序进入前台:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
applicationFromBackground = TRUE;
}
现在在所有视图控制器的视图中都会出现方法,该方法将为最顶层的视图控制器调用,所以这样做:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// Create AppDelegate instance
AppDelegate *objAppDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
if(objAppDelegate.applicationFromBackground)
{
applicationFromBackground = FALSE;
//do what u want.
}
}