如果模态ViewController演示文稿样式为UIModalPresentationForm

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

注意:

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

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

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

navigationController.modalPresentationStyle = UIModalPresentationFormSheet;

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

...

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

作品

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];


HUWWW
浏览 615回答 3
3回答

沧海一幻觉

在以模态方式呈现的视图控制器中,只需覆盖disablesAutomaticKeyboardDismissal以返回NO:- (BOOL)disablesAutomaticKeyboardDismissal {     return NO;}

暮色呼如

如果要显示带有的模态,请小心UINavigationController。然后,您必须disablesAutomaticKeyboardDismissal在导航控制器上设置,而不是在视图控制器上。您可以使用类别轻松完成此操作。文件:UINavigationController + KeyboardDismiss.h#import&nbsp;<Foundation/Foundation.h>@interface&nbsp;UINavigationController&nbsp;(KeyboardDismiss)-&nbsp;(BOOL)disablesAutomaticKeyboardDismissal;@end文件:UINavigationController + KeyboardDismiss.m#import&nbsp;"UINavigationController+KeyboardDismiss.h"@implementation&nbsp;UINavigationController(KeyboardDismiss)-&nbsp;(BOOL)disablesAutomaticKeyboardDismissal{ &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;NO;}@end不要忘记在使用UINavigationController的文件中导入类别。
打开App,查看更多内容
随时随地看视频慕课网APP