运维开发网

objective-C语言 将App delegate设置为第一响应者

运维开发网 https://www.qedev.com 2020-03-07 10:22 出处:网络 作者:运维开发网整理
我正在尝试实现一个适用于我的应用程序的抖动识别.为此,我将以下代码添加到我的xxxAppDelegate.m: -(BOOL)canBecomeFirstResponder { return YES; } - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event { if (event.type =
我正在尝试实现一个适用于我的应用程序的抖动识别.为此,我将以下代码添加到我的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的信息.

0

精彩评论

暂无评论...
验证码 换一张
取 消