对于那些你们谁图形工作,这里是视图层次结构的示意图:UITextField停止摇动事件?
Root View -> UINavigationController -> UITableView -> Edit View -> Problem UITextfield
基本上,当设备震动- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event;
被称为我的根视图。
当用户点击“编辑”图标(笔,在屏幕的底部 - 不是传统的UINavigationBar编辑按钮),主视图添加一个子视图到自己,并使用动画在屏幕上使用自定义动画。
这个子视图包含一个UINavigationController,它包含一个UITableView。 UITableView在单元被点击时将子视图加载到自身中。第二个子视图是罪魁祸首。由于某种原因,第二个子视图中的UITextField会导致问题。
当用户点击视图时,除非UITextField处于活动状态(处于编辑模式?),否则主视图不会响应抖动。
附加信息:
我的议案事件处理程序:
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
NSLog(@"%@", [event description]);
SystemSoundID SoundID;
NSString *soundFile = [[NSBundle mainBundle] pathForResource:@"shake" ofType:@"aif"];
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:soundFile], &SoundID);
AudioServicesPlayAlertSound(SoundID);
[self genRandom:TRUE];
}
的genRandom:
方法:
/* Generate random label and apply it */
-(void)genRandom:(BOOL)deviceWasShaken{
if(deviceWasShaken == TRUE){
decisionText.text = [NSString stringWithFormat: (@"%@", [shakeReplies objectAtIndex:(arc4random() % [shakeReplies count])])];
}else{
SystemSoundID SoundID;
NSString *soundFile = [[NSBundle mainBundle] pathForResource:@"string" ofType:@"aif"];
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:soundFile], &SoundID);
AudioServicesPlayAlertSound(SoundID);
decisionText.text = [NSString stringWithFormat: (@"%@", [pokeReplies objectAtIndex:(arc4random() % [pokeReplies count])])];
}
}
shakeReplies
和pokeReplies
都是NSArrays的字符串。一个用于屏幕的某个部分被戳穿,另一个用于设备被震动时。该应用程序将从NSArray中随机选择一个字符串并显示在屏幕上。
一如既往,代码示例表示赞赏。 我已经添加了我自己的来帮助解释这个问题。
如何在子视图中的键盘? – 2010-05-25 04:22:32
不再相关,请关闭。 – Moshe 2010-06-10 17:59:47