将App delegate设置为第一响应者

时间:2011-11-11 20:52:12

标签: objective-c xcode shake becomefirstresponder

我正在尝试实现一种适用于整个应用程序的抖动识别。为此,我将以下代码添加到我的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中

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

1 个答案:

答案 0 :(得分:2)

如果您将应用委托更改为UIResponder的子类?

会发生什么情况

修改

您可以在文档中了解响应者链here