对于我的iPad应用程序,当按下按钮时,我有一个以模式显示的视图作为表单。为了让键盘在文本字段中输入文本后被解雇,我按照建议进行了尝试;
“disablesAutomaticKeyboardDismissal”方法。
这不起作用,实际上,该方法永远不会根据日志调用。 键盘将解除iPhone或我选择不提供模态。
这是我的代码:
- (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)disablesAutomaticKeyboardDismissal 或不,键盘不会被解雇,除非我删除tis行:
// [navController setModalPresentationStyle:UIModalPresentationFormSheet];
然而,它不再以我想要的方式呈现。
谁能看到我做错了什么?
答案 0 :(得分:7)
- (BOOL)disablesAutomaticKeyboardDismissal需要被覆盖以由视图控制器返回NO,该视图控制器作为表单而不是由演示者呈现;那是你的错。在您的情况下,您可以继承UINavigationController以获得所需的行为:
@interface AutomaticKeyboardDismissingNavigationController : UINavigationController
@end
@implementation AutomaticKeyboardDismissingNavigationController
- (BOOL)disablesAutomaticKeyboardDismissal
{
return NO;
}
@end
(班级名称可能会更短,但仍然可以理解。)