2

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

4

1 に答える 1

2

同じ問題がありました。試す

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

それ以外の

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

イベント処理ガイド: モーション イベントのように。これは私にとってはうまくいきました。

于 2012-03-04T18:30:47.183 に答える