注意:
有关iOS 4.3以后的解决方案,请参阅公认的答案(不是最高投票者)。
此问题与在iPad键盘中发现的行为有关,如果在带有导航控制器的模式对话框中显示该行为,该行为将被拒绝。
基本上,如果我向导航控制器显示以下行,如下所示:
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
键盘被拒绝。如果我注释掉这一行,键盘就没问题了。
...
我有两个textField,用户名和密码。用户名具有“下一步”按钮,密码具有“完成”按钮。如果将其显示在模式导航控制器中,键盘将不会消失。
作品
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
[self.view addSubview:b.view];
不起作用
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
UINavigationController *navigationController =
[[UINavigationController alloc]
initWithRootViewController:b];
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[b release];
如果我删除导航控制器部件,并单独将“ b”作为模态视图控制器呈现出来,那么它将起作用。导航控制器有问题吗?
作品
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
b.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:b animated:YES];
[b release];
作品
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
UINavigationController *navigationController =
[[UINavigationController alloc]
initWithRootViewController:b];
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[b release];
UINavigationController
课堂的问题。干杯。
resignFirstResponder
正在执行,但键盘仍在显示。我的方案(带有navig contrllr的presentationFormSheet)与您的方案完全相同。万分感谢!!