objective-c – 将App delegate设置为第一响应者

我正在尝试实现一个适用于我的应用程序的抖动识别.为此,我将以下代码添加到我的xxxAppDelegate.m:

-(BOOL)canBecomeFirstResponder {
    return YES;
}

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
    if (event.type == UIEventSubtypeMotionShake) {
        NSLog(@"Shaken, not stirred.");
    }
}

但因为在.h文件中,委托被定义为

@interface xxxAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate>

我不能用

[self becomeFirstResponder];

在.m中,使应用程序委派第一个响应者.因此,它当然不起作用.
让它运作的最佳方法是什么?

最佳答案 如果您将应用程序委托更改为UIResponder的子类会发生什么?

编辑

您可以在文档中阅读有关响应者链here的信息.

点赞