如何从任何地方对applicationWillResignActive做出反应?

Boo*_*oon 34 iphone

在iphone应用程序的任何地方订阅applicationWillResignActive等事件的代码是什么?

[UPDATE]

让我重新解释一下我的问题.我不想在我的应用程序委托中对此做出响应,而是从另一个类中听取此事件.这是可能的还是我需要将事件从应用程序委托传递给相关类?

Jam*_*tel 75

看起来您正在寻找此代码.

- (void) applicationWillResign {
    NSLog(@"About to lose focus");
}

- (void) myMethod { 
    [[NSNotificationCenter defaultCenter]
        addObserver:self
        selector:@selector(applicationWillResign)
        name:UIApplicationWillResignActiveNotification 
        object:NULL];
}
Run Code Online (Sandbox Code Playgroud)

  • 也应该在某些时候删除观察者,通常是dealloc:[[NSNotificationCenter defaultCenter] removeObserver:self]; (10认同)

Ed *_*rty 12

看一下您正在讨论的方法的文档:

applicationWillResignActive:

告诉代理该应用程序将变为非活动状态.此方法是可选的.

- (void)applicationWillResignActive:(UIApplication *)application
Run Code Online (Sandbox Code Playgroud)

[...]

讨论

[...]

在它变为非活动状态之前,应用程序还会发布UIApplicationWillResignActiveNotification.