Установить делегат приложения в качестве первого респондента - PullRequest
4 голосов
/ 12 ноября 2011

Я пытаюсь реализовать распознавание встряхивания, которое работает во всем приложении. Для этого я добавляю следующий код в свой 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 Ответ

2 голосов
/ 12 ноября 2011

Что произойдет, если вы измените делегат приложения на подкласс UIResponder?

Редактировать

Вы можете прочитать о цепочке респондента здесь в документации.

...