アプリにシェイク認識を統合しました。アプリ全体で使用できるように、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 シミュレーターで実行すると、動作しません。実機でも同じです。