我有一个手动设置为第一个响应者的文本字段。有时候这种方法很好,有些则失败了。
我的应用程序是一款有两种游戏方法的游戏:闪卡和普通游戏。作为故障源的UITextField是隐藏的,不用于闪卡模式。一旦闪存卡加载一次,键盘就会停止显示。如果播放器永远不会切换到闪卡模式,键盘永远不会失败。以下是使键盘显示的代码:
nameBar.hidden = FALSE;
self.animalName.hidden = FALSE;
self.animalName.enabled = YES;
[self.animalName becomeFirstResponder];
这是切换模式的代码:
playViewController = nil;
[playViewController release];
playViewController = [[PlayViewController alloc] initWithNibName:@"PlayView" bundle:nil];
playViewController.delegate = self;
[(vsl_mmp_crittersAppDelegate*)[[UIApplication sharedApplication] delegate] playButtonPlaySound];
playViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
playViewController.flashcardMode = TRUE;
[self presentModalViewController:playViewController animated:YES];
[(vsl_mmp_crittersAppDelegate*)[[UIApplication sharedApplication] delegate] playPlayMusic];
我真的很困惑为什么UITextField在我切换模式后停止工作,特别是因为我完全释放并重新分配播放控制器这样做。
感谢阅读。
答案 0 :(得分:0)
你从哪里打电话给becomeFirstResponder
?
从viewDidLoad
调用它会为您提供您描述的行为,并且每次从viewDidAppear:
调用时都会显示键盘。