模态对话框不会关闭键盘

Den*_*Vog 41 ipad uimodalpresentationformsh ios

我遇到了一个问题,即离开时,键盘不会被解雇UITextFieldUITextViewUIModalPresentationFormSheet.另外,我创建了一个大按钮作为视图的背景,因此如果用户点击字段之外它会被触发.我在常规视图控制器中使用相同的代码,它按预期工作.在模态视图控制器中它什么都不做.任何建议,将不胜感激.

- (BOOL)textFieldShouldReturn:(id)sender {  
 [titleTextField resignFirstResponder];
 return YES;
}

- (BOOL)textViewShouldReturn:(id)sender {  
 [synopsisTextView resignFirstResponder];
 return YES;
}

- (IBAction)textFieldDoneEditing:(id)sender {  
 [sender resignFirstResponder];
} 

- (IBAction)textViewDoneEditing:(id)sender {  
 [sender resignFirstResponder];
} 

- (IBAction)backgroundClick:(id)sender {  
 [titleTextField resignFirstResponder];
 [synopsisTextView resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)

asl*_*nci 119

覆盖disablesAutomaticKeyboardDismissal如下返回NO修复了我的同样问题.您应该将此代码放入视图控制器,从中启动键盘:

- (BOOL)disablesAutomaticKeyboardDismissal {
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

另外,如果您想获得详细说明,请查看此SO问题.

  • 这在我的ViewController中无数次使用它失败了但是我继续使用它添加了一个NavigationController子类并且成功了! (4认同)
  • 如果您的模态视图控制器位于UINavigationController中,请尝试通过在UINavigationController上创建类别来调用@ctrahey,以在其topViewController上调用disablesAutomaticKeyboardDismissal (2认同)

Chr*_*hey 51

对于那些遇到问题的人UINavigationController,我认为有一个比一个类别更好的解决方案UIViewController.我们应该改变行为UINavigationController来询问它topViewController(在我看来,这就是所有ViewController容器应该如何处理它).

@implementation UINavigationController (DelegateAutomaticDismissKeyboard)
- (BOOL)disablesAutomaticKeyboardDismissal {
    return [self.topViewController disablesAutomaticKeyboardDismissal];
}
Run Code Online (Sandbox Code Playgroud)

  • 同上.如果我可以投票15次,我愿意. (4认同)
  • 我们真的应该覆盖一个类别中的方法吗?似乎不对. (2认同)

归档时间:

查看次数:

20492 次

最近记录:

8 年,10 月 前