在我的应用程序中,我按下一个按钮,它会拉出一个模态演示文稿表(适用于iPad)。在这个模态视图中,我在主视图中有一个滚动视图,在滚动视图中有一个文本字段。
view controller
view
scrollview
text field
我没有尝试过调整键盘,我不知道为什么。唯一发生的事情就是文本域中闪烁的光标消失了。我的类是scrollview和text字段的委托。这是我尝试过的:
- (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];
答案 0 :(得分:4)
在任何非全屏显示的ViewController的iPad上,您必须实现-(BOOL)disablesAutomaticKeyboardDismissal
才能返回NO
以关闭键盘。
- (BOOL)disablesAutomaticKeyboardDismissal
{
return NO;
}
实施后,您可以致电[self.view endEditing:YES];
。
编辑:
此问题的另一个常见原因是从NO
返回- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
。在UITextFieldDelegate中实现该方法并让它无条件地返回YES
以证明它不是一个因素。