如何解雇键盘?

在我的应用程序中,我按下了一个按钮,它会拉出一张模态演示文稿表单(适用于iPad)。 在这个模式视图中,我在我的主视图中有一个滚动视图,在我的滚动视图中有一个文本框。

view controller
    view
        scrollview
            text field

没有任何我曾尝试过的辞职键盘,我不知道为什么。 发生的唯一情况是文本字段中的闪烁光标消失。 我的课是scrollview和文本字段的代表。 这是我所尝试过的:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    [self.titleTextField resignFirstResponder];
    [self.titleTextField endEditing:YES];
    [self.view endEditing:YES];
    [self.view resignFirstResponder];
    [self.scrollView endEditing:YES];
    [self.scrollView resignFirstResponder];
}

该方法确实被调用,但键盘不会消失。 任何人都可以帮助我,或者至少告诉我为什么?

以下是我如何展示这种模式呈现视图:

(它来自tableviewcontroller)

didSelectRowAtIndexPath方法

EditVideo *targetController = [self.storyboard instantiateViewControllerWithIdentifier:@"editVideo"];

        targetController.delegate = self;

        UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:targetController];

        navigationController.modalPresentationStyle = UIModalPresentationFormSheet;

        [self presentViewController:navigationController animated:YES completion:nil];

        [self.tableView deselectRowAtIndexPath:indexPath animated:YES];

在任何非全屏显示ViewController的iPad上,必须实现-(BOOL)disablesAutomaticKeyboardDismissal以返回NO以关闭键盘。

- (BOOL)disablesAutomaticKeyboardDismissal
{
    return NO;
}

一旦实现,你可以调用[self.view endEditing:YES];

编辑:这个问题的另一个常见原因是从- (BOOL)textFieldShouldEndEditing:(UITextField *)textField返回NO 。 在UITextFieldDelegate中实现该方法,并无条件返回YES以证明它不是一个因素。

链接地址: http://www.djcxy.com/p/7703.html

上一篇: how to dismiss keyboard?

下一篇: How to enable cancel button with UISearchBar?