震动识别在iOS 4上不起作用,在iOS 5上起作用

我已经在我的应用程序中整合了一个识别function 我已经把它放在我的appdelegate中,以便能够在整个应用程序中使用它。 它适用于iOS 5,但在iOS 4上无效。

我在我的appdelegate.m中使用下面的代码:

- (void)applicationDidBecomeActive:(UIApplication *)application { [self becomeFirstResponder]; .... } -(BOOL)canBecomeFirstResponder { return YES; } - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event { NSLog(@"motionBegan"); } -(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event{ NSLog(@"motionEnded"); } 

如果我在iOS5模拟器中运行这个,并激活摇晃手势,我得到NSLog消息。 如果我在iOS 4.3模拟器中运行它不起作用。 与真实设备一样的东西。

我遇到过同样的问题。 尝试

 - (void)viewDidAppear:(BOOL)animated { [self becomeFirstResponder]; } 

代替

 - (void)applicationDidBecomeActive:(UIApplication *)application { [self becomeFirstResponder]; .... } 

如“ 事件处理指南:动作事件”中所述 。 这对我有效。

Interesting Posts