相关疑难解决方法(0)

如果模态ViewController演示文稿样式为UIModalPresentationFormSheet,则iPad键盘不会被忽略

注意:

从iOS 4.3开始,请参阅已接受的答案(不是最受欢迎的答案).

这个问题是关于在iPad键盘中发现的行为,如果在带有导航控制器的模态对话框中显示,它将拒绝被解雇.

基本上,如果我使用以下行显示导航控制器,如下所示:

navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
Run Code Online (Sandbox Code Playgroud)

键盘拒绝被解雇.如果我注释掉这一行,键盘就会消失.

...

我有两个textFields,用户名和密码; username有一个Next按钮,密码有一个Done按钮.如果我在模态导航控制器中显示它,键盘将不会消失.

作品

broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
[self.view addSubview:b.view];
Run Code Online (Sandbox Code Playgroud)

什么都不行

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];
Run Code Online (Sandbox Code Playgroud)

如果我删除导航控制器部件并将"b"作为模态视图控制器单独显示,则可以正常工作.导航控制器是问题吗?

作品

broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
b.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:b animated:YES];
[b release];
Run Code Online (Sandbox Code Playgroud)

作品

broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
UINavigationController *navigationController = 
    [[UINavigationController …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uitextfield first-responder ios

214
推荐指数
4
解决办法
5万
查看次数

标签 统计

first-responder ×1

ios ×1

iphone ×1

objective-c ×1

uitextfield ×1