0

我正在尝试检测设备(iPhone/iPod Touch)何时抖动,我已经做的(在我的 viewController.m 中)是:

- (BOOL) canBecomeFirstResponder{
return YES;
}

.

- (void) motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event{
if (motion == UIEventSubtypeMotionShake){
NSLog(@"Motion detected");
}
}

我已将此行添加到 viewDidLoad :

BOOL ret = [self becomeFirstResponder];

然后,我构建并运行应用程序,并尝试摇动设备,但没有任何反应!.. 我开始解决问题,通过使用断点,我检测到从 [self becomeFirstResponder] 返回的“ret”值是“NO”。并且不知道是什么问题。有什么帮助吗?

Info : using Xcode 4, and iOS 4.3

提前致谢。

4

2 回答 2

0

你看过Shaking-Motion Events吗?

于 2011-03-18T08:11:03.563 回答
0

我实际上找到了解决方案..

[self becomeFirstResponder];

应该只在 viewDidAppear: 中实现,因为我在 viewWillAppear: 和 viewDidLoad 中尝试过,但在这两种方法中都不起作用。

谢谢

于 2011-03-18T17:55:26.633 回答