How to dismiss the keyboard on iPad when using modalPresentationStyle
对于我的iPad应用程序,当按下按钮时,我会以表格形式显示视图。 为了使键盘在文本字段中输入文本后关闭,我尝试按照建议进行操作;
" disablesAutomaticKeyboardDismissal"方法。
这是行不通的,实际上,从未根据日志调用该方法。
当iPhone或我选择不以模态形式出现时,键盘将关闭。
这是我的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - (BOOL)disablesAutomaticKeyboardDismissal { NSLog(@"method calls"); return NO; } - (IBAction)showNewView:(id)sender { MyViewController *mvc = [[MyViewController alloc] init]; // some lines about setting content //... UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:mvc]; [navController setModalPresentationStyle:UIModalPresentationFormSheet]; [self presentViewController:navController animated:YES completion:nil]; } |
-(BOOL)禁用自动键盘关闭
否,除非我删除此行,否则键盘不会关闭:
1 | // [navController setModalPresentationStyle:UIModalPresentationFormSheet]; |
但是,它不再以我想要的方式呈现。
谁能看到我在做什么错?
-(BOOL)disablesAutomaticKeyboardDismissal需要重写,以便由以表单形式显示的视图控制器(而不是由演示者)返回NO; 那是你的错 在您的情况下,您可以将UINavigationController子类化以获得所需的行为:
1 2 3 4 5 6 7 8 9 | @interface AutomaticKeyboardDismissingNavigationController : UINavigationController @end @implementation AutomaticKeyboardDismissingNavigationController - (BOOL)disablesAutomaticKeyboardDismissal { return NO; } @end |
(类名可能会短一些,但仍然可以理解。)