それで、私が実装したコードを示すことから始めましょう
-(BOOL)canBecomeFirstResponder
{
return YES;
}
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self becomeFirstResponder];
}
- (void) viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self becomeFirstResponder];
}
- (void)viewWillDisappear:(BOOL)animated
{
[self resignFirstResponder];
[super viewWillDisappear:animated];
}
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
if (motion == UIEventSubtypeMotionShake)
{
NSLog(@"FUUU");
}
}
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
if (motion == UIEventSubtypeMotionShake)
{
NSLog(@"FUUU");
}
}
これはすべてUIViewControllerクラスにあります
そして- (void) applicationDidFinishLaunching:(UIApplication*)application
私は設定しました
[application setApplicationSupportsShakeToEdit:YES];
それでも、それは何もしません。検出された単一の動きはありません。他に何をすべきかわかりません。これは他の多くの人にとってもうまくいったようですので、なぜ私が違うのか困惑しています...それはUINavigationControllerを介しているからでしょうか?または、plistを介してメインアプリケーションをロードし、メインがそのように見えるため
retVal = UIApplicationMain(argc, argv, nil, nil);
私はかなり完全に困惑しています。