`
xiao_hua
  • 浏览: 38638 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

UIModalPresentationFormSheet模式下resignFirstResponder无法隐藏键盘

    博客分类:
  • ios
阅读更多
弹出UIModalPresentationFormSheet模式
- (IBAction)buttonPressed:(id)sender
{
    NSLog(@"Show feedback view now!");
    UIViewController *fbsheet = [[FeedbackSheet alloc] initWithNibName:@"FeedbackSheet" bundle:nil];
    fbsheet.modalPresentationStyle = UIModalPresentationFormSheet;
    [self presentModalViewController:fbsheet animated:YES];
    
    [fbsheet release];
}


效果如下:



但是当在UItextview软盘弹出之后,点击其他区域使用下面代码软盘无法隐藏
 [feedbackContent resignFirstResponder];


进查询资料之后发现重写disablesAutomaticKeyboardDismissal即可,该api在iOS (4.3 and later)
-(BOOL)disablesAutomaticKeyboardDismissal
{
    return NO;
}


还有一种方式就是通过在键盘上添加toolbar,也是一种比较简易的操作
   - (void)viewDidLoad
{
    [super viewDidLoad];
    
    UIToolbar * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
    [topView setBarStyle:UIBarStyleBlack];

    UIBarButtonItem * btnSpace = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
    UIBarButtonItem * doneButton = [[UIBarButtonItem alloc] initWithTitle:@"收起键盘" style:UIBarButtonItemStyleDone target:self action:@selector(dismissKeyBoard)];
    [doneButton setWidth:80];
    
    NSArray * buttonsArray = [NSArray arrayWithObjects:btnSpace,doneButton,nil];
    [doneButton release];
    [btnSpace release];
    
    [topView setItems:buttonsArray];
    [feedbackContent setInputAccessoryView:topView];
}

-(IBAction)dismissKeyBoard
{
    [feedbackContent resignFirstResponder];
}



效果如下:




参考资料:http://stackoverflow.com/questions/3019709/modal-dialog-does-not-dismiss-keyboard
  • 大小: 52.6 KB
  • 大小: 26 KB
分享到:
评论

相关推荐

    iPhone隐藏键盘 教程

    对于教程中的`RegisterDemo`项目,这是一个可能包含用户注册过程的示例应用,其中可能会用到上述键盘隐藏技术。在查看和学习这个示例时,重点应该放在以下几个方面: 1. 如何在特定事件(如点击“注册”按钮)后...

    iOS简单实现隐藏键盘

    为了实现隐藏键盘的功能,我们需要监听UIResponder的`textFieldShouldReturn:`或`textViewShouldReturn:`方法,这两个方法会在用户按下回车键时触发。我们可以在这些方法中调用`resignFirstResponder`,使当前的输入...

    iOS 隐藏键盘对应的Demo

    当你调用一个文本输入视图(如UITextField或UITextView)的`resignFirstResponder`方法时,它将失去焦点,从而隐藏键盘。例如: ```swift if yourTextField.canResignFirstResponder { yourTextField....

    iOS 软键盘遮挡问题 点击外部隐藏软键盘

    在UITextField和UITextView中,可以设置代理方法`textFieldShouldReturn:`或`textViewShouldEndEditing:`,在用户按下return键时调用`resignFirstResponder`方法,从而隐藏软键盘。这样,用户可以轻松地通过键盘本身...

    UITextfieldresignFirstResponder键盘不回收

    然而,在某些情况下,可能会遇到`UITextField resignFirstResponder`后键盘并未如预期那样回收的问题。这可能是由于多种原因导致的,例如事件处理不当、控制器生命周期问题或者自定义手势冲突等。 首先,我们来看...

    详解IOS点击空白处隐藏键盘的几种方法介绍

    iOS开发中经常要用到输入框,默认情况下点击输入框就会弹出键盘,但是必须要实现输入框return的委托方法...2、[textFiled resignFirstResponder] 这个则是比较常用的让某个textFiled的键盘隐藏。 接下来就是几种实现

    ios点击键盘以外空白区域隐藏键

    - 当手势被成功识别后,会调用之前定义的方法`viewTapped:`,在这个方法内部,通过调用`activitySearchBar.resignFirstResponder`来实现隐藏键盘的功能。 - 其中`resignFirstResponder`方法的作用是从当前视图控制...

    总结IOS中隐藏软键盘的三种方式

    在`.m`文件中实现这个方法,调用`resignFirstResponder`来隐藏键盘。如果需要在多个文本框间切换,可以为每个文本框设置不同的处理方法,根据不同的返回键行为(如"Next"和"Done")进行相应的操作。 2. 轻触背景...

    在iOS虚拟键盘上添加动态隐藏按钮

    当用户点击按钮时,手势识别器会触发相应的事件处理函数,此时可以调用 `resignFirstResponder` 方法关闭键盘,或者执行其他业务逻辑。 3. 注册自定义键盘: 在Info.plist文件中,添加`UIKeyboardType`键,并设置...

    键盘隐藏demo

    本"键盘隐藏demo"旨在提供一个解决方案,帮助开发者处理一个常见的问题:当用户在使用UITextField时,如何优雅地隐藏或管理键盘的显示与隐藏,以优化用户的操作流程。以下是对这个Demo中的关键知识点的详细解释: 1...

    ios 开发关闭键盘

    `resignFirstResponder`方法的作用是让当前的First Responder(在此情况下是键盘)放弃其响应者状态,从而隐藏键盘。然后,我们需要将每个文本框的Did End On Exit事件映射到这个方法。在Xcode中,通过Assistant ...

    iOS键盘如何添加隐藏键盘功能

    总结起来,实现iOS键盘隐藏功能的关键步骤包括: 1. 创建自定义的UIBarButtonItem子类,用于存储关联的编辑视图。 2. 创建自定义的UIView子类,用于添加到keyWindow并保持方法活性。 3. 在需要隐藏键盘的编辑视图...

    非输入区键盘消失的方法

    `dismissKeyboard`方法会遍历当前视图控制器的所有子视图,如果它们是可编辑的(如UITextField或UISearchBar),则会调用`resignFirstResponder`方法,隐藏键盘。 ### 方法二:使用UIView的`touchesBegan`方法 1....

    IOS应用源码——让键盘消失textField.rar

    通过遵循UITextFieldDelegate协议,我们可以设置代理方法,例如`textFieldShouldReturn:`,当用户按下回车键时,可以调用`resignFirstResponder`方法来隐藏键盘。 2. **UIResponder Chain**:iOS中的所有视图都是...

    iOS开发数字键盘,定制键盘

    在事件处理器中,我们可以调用`resignFirstResponder`方法,让当前的文本字段失去焦点,从而隐藏键盘。如果需要更复杂的逻辑,比如保存输入数据或执行特定操作,可以在点击事件中添加相应代码。 对于银行卡密码键盘...

    ios自定义键盘附件关闭键盘

    在iOS中,键盘主要由UIKeyboardType定义,但这些预设键盘可能无法满足所有应用场景。为了提供更定制化的输入方式,我们可以自定义一个UIInputView子类,这个子类将作为自定义键盘的视图。 1. **创建自定义键盘** -...

    IOS应用源码——让键盘消失textField.zip

    2. **定义方法来隐藏键盘**:创建一个方法来响应手势识别器的触发,并调用UITextField的`resignFirstResponder`方法来隐藏键盘。 ```swift @objc func dismissKeyboard(sender: UITapGestureRecognizer) { view....

    IOS应用源码之让键盘消失textField .zip

    而`textFieldShouldReturn`方法则是关键,当用户按下键盘上的“回车”或“完成”键时,我们调用`textField.resignFirstResponder()`方法,这会让textField失去焦点,从而隐藏键盘。 除了通过代理方法,还可以通过...

    HiddenKeyboardTest Demo 代码

    4. **uitextfield和uitextview的代理方法**:通过实现`textFieldShouldReturn:`或`textViewShouldReturn:`方法,当用户按下“return”键时,可以调用`resignFirstResponder`方法来隐藏键盘。 5. **UIScrollView的...

    键盘遮挡空白返回

    在实际开发中,还可以根据具体需求进行优化,比如添加判断条件只在特定情况下隐藏键盘,或者设置手势滑动收起键盘等。 此外,对于一些第三方库或框架,如React Native、Flutter等,也有相应的解决方案。例如,在...

Global site tag (gtag.js) - Google Analytics