resignFirstResponder不工作?
我试图在iPad上隐藏键盘,但我不知道为什么resignFirstResponder不起作用。 但是popToRoot运行良好。
- (BOOL)textFieldShouldReturn:(UITextField *)textField { NSString *desc = [NSString stringWithFormat:@"%@",[descTF text]]; [textField resignFirstResponder]; [self.navigationController popToRootViewControllerAnimated:YES]; return YES; }
那么你能指导我该怎么做?
这是UIModalPresentationFormSheet
字段? 如果是这样,这是一个已知的问题,你不能解除键盘编程,直到视图控制器被解雇。
更新 :根据苹果开发者论坛的这个线程 ,一个可能的解决方法是从实现disablesAutomaticKeyboardDismissal方法的导航控制器子类中呈现工作表视图控件。 所以像这样:
MyViewController *myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]; CustomNavigationController *navController = [[CustomNavigationController alloc] initWithRootViewController:myViewController]; theNavigationController.modalPresentationStyle = UIModalPresentationFormSheet; [self presentModalViewController:theNavigationController animated:YES];
要跟踪samvermette的答案,如果它在UIModalPresentationFormSheet
中,现在可以重写UIModalPresentationFormSheet
方法来获得您所需的行为。 将下面的方法添加到您的类, UITextFields
和UITextViews
将响应resignFirstResponder。
- (BOOL)disablesAutomaticKeyboardDismissal { return NO; }
你永远不应该有机会发送-resignFirstResponder
。 你应该做的只是发送-endEditing:YES
的问题。
你有没有实现UITextFieldDelegate
? 如果你已经实现了那么,那么它应该工作。
(道歉…这是我发布此修补程序的StackOverflow站点上的第四个地方..)
我有XCode 5和iOS 7的巨大问题,试图让屏幕键盘隐藏。
最终,我find了一个非常简单的解决scheme:我只是在我的表单中禁用了UITextFields
。 神奇的是,这足以让屏幕键盘滑开。
更多细节在这里
令人惊讶的是,这甚至适用于Modal UIViewControllers
。 是的,这也让我感到惊讶!