如何解雇键盘?
在我的应用程序中,我按下了一个按钮,它会拉出一张模态演示文稿表单(适用于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
以证明它不是一个因素。