大家好,我有一个应用程序,我允许用户在他们的 facebook 的 pinwall 上发布一些东西。我直接从 Facebook 使用 DemoApp 进行设置。
我已经实现了一个抖动检测,当用户摇动设备时它会做一些事情。然而,由于这两个函数在同一个视图控制器中,它们都不再工作了。
- 当 Facebook 弹出登录窗口时,键盘不再出现。
- 不再检测到震动。
我想这与第一响应者有关。我已经尝试了很多事情,但我无法解决它。这是我的代码的必要部分。
在 facebook pinwall 上发布一些内容:
- (IBAction)publishStream{
FactsAppDelegate *appDelegate = (FactsAppDelegate *)[[UIApplication sharedApplication] delegate];
NSMutableDictionary *dictionary = [[[NSMutableDictionary alloc] init]autorelease];
[dictionary setObject:@"Du postest diesen Fact:" forKey:@"user_message_prompt"];
[dictionary setObject:[[appDelegate.facts objectAtIndex:currentFactId] fact] forKey:@"message"];
[_facebook dialog:@"feed" andParams:dictionary andDelegate:self];
}
震动检测:
#pragma mark Motion catching
// shake motion began
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (motion != UIEventSubtypeMotionShake) return;
// load next fact
[self next];
// vibrate
[self vibrate];
}
抖动检测所需的方法:
#pragma mark Shake events are only detectable by the first responder
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self becomeFirstResponder];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self resignFirstResponder];
}
谁能告诉我我必须改变什么才能让两者(facebook,shake)工作?非常感谢,donot