1

对于我的 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];

但是,它不再以我想要的方式呈现。

谁能看到我做错了什么?

4

1 回答 1

7

-(BOOL)disablesAutomaticKeyboardDismissal 需要被作为表单呈现的视图控制器而不是演示者覆盖以返回 NO;那是你的错误。在您的情况下,您可以继承 UINavigationController 以获得所需的行为:

@interface AutomaticKeyboardDismissingNavigationController : UINavigationController
@end

@implementation AutomaticKeyboardDismissingNavigationController
- (BOOL)disablesAutomaticKeyboardDismissal
{
    return NO;
}
@end

(类名可能会短一些,但仍然可以理解。)

于 2012-10-08T11:29:31.183 回答