检测Objective-C框架上的主页按钮



我正在Objective-C中开发一个iOS框架,我需要在执行框架时检测何时按下主页按钮。

为了更好地描述:在我的最终应用程序上,在我添加编译后的框架的地方,用户必须单击一个按钮,该按钮将调用我的框架。然后,框架打开相机,尝试识别一些对象并返回结果。

我的问题是:如果用户在相机运行时点击主页按钮,应用程序进入后台,我需要我的框架来结束这个过程并返回零。

我已经尝试过使用以下方法:

- (void) applicationWillResignActive:(UIApplication *) application {}
- (void) applicationDidEnterBackground:(UIApplication *) application {}
- (void) applicationWillTerminate:(UIApplication *) application {}
- (void) applicationWillResign {}
- (void) viewDidDisappear:(BOOL) animated {}

当我按下主页按钮时,它们都没有触发。

是否有其他检测方法?

您无法检测到主页按钮被按下,但您可以检测到它的结果。

如果您的申请被发送到后台,您将获得UIApplicationWillResignActiveNotification。您可以使用NSNotificationCenter:收听

- (void)initFramework {
[NSNotificationCenter.defaultCenter addObserver:self
selector:@selector(willResignActive) 
name:UIApplicationWillResignActiveNotification 
object:nil];
}
- (void)willResignActive {
// do what you need to do,
// e.g. cancel a running operation, 
// call a callbackHandler with nil, etc.
}
- (void)dealloc {
// maybe also provide an explicit mechanism
// by which the user of the framework can do this
[NSNotificationCenter.defaultCenter removeObserver:self];
}

相关内容

最新更新