弹出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
分享到:
相关推荐
对于教程中的`RegisterDemo`项目,这是一个可能包含用户注册过程的示例应用,其中可能会用到上述键盘隐藏技术。在查看和学习这个示例时,重点应该放在以下几个方面: 1. 如何在特定事件(如点击“注册”按钮)后...
为了实现隐藏键盘的功能,我们需要监听UIResponder的`textFieldShouldReturn:`或`textViewShouldReturn:`方法,这两个方法会在用户按下回车键时触发。我们可以在这些方法中调用`resignFirstResponder`,使当前的输入...
当你调用一个文本输入视图(如UITextField或UITextView)的`resignFirstResponder`方法时,它将失去焦点,从而隐藏键盘。例如: ```swift if yourTextField.canResignFirstResponder { yourTextField....
在UITextField和UITextView中,可以设置代理方法`textFieldShouldReturn:`或`textViewShouldEndEditing:`,在用户按下return键时调用`resignFirstResponder`方法,从而隐藏软键盘。这样,用户可以轻松地通过键盘本身...
然而,在某些情况下,可能会遇到`UITextField resignFirstResponder`后键盘并未如预期那样回收的问题。这可能是由于多种原因导致的,例如事件处理不当、控制器生命周期问题或者自定义手势冲突等。 首先,我们来看...
iOS开发中经常要用到输入框,默认情况下点击输入框就会弹出键盘,但是必须要实现输入框return的委托方法...2、[textFiled resignFirstResponder] 这个则是比较常用的让某个textFiled的键盘隐藏。 接下来就是几种实现
- 当手势被成功识别后,会调用之前定义的方法`viewTapped:`,在这个方法内部,通过调用`activitySearchBar.resignFirstResponder`来实现隐藏键盘的功能。 - 其中`resignFirstResponder`方法的作用是从当前视图控制...
在`.m`文件中实现这个方法,调用`resignFirstResponder`来隐藏键盘。如果需要在多个文本框间切换,可以为每个文本框设置不同的处理方法,根据不同的返回键行为(如"Next"和"Done")进行相应的操作。 2. 轻触背景...
当用户点击按钮时,手势识别器会触发相应的事件处理函数,此时可以调用 `resignFirstResponder` 方法关闭键盘,或者执行其他业务逻辑。 3. 注册自定义键盘: 在Info.plist文件中,添加`UIKeyboardType`键,并设置...
本"键盘隐藏demo"旨在提供一个解决方案,帮助开发者处理一个常见的问题:当用户在使用UITextField时,如何优雅地隐藏或管理键盘的显示与隐藏,以优化用户的操作流程。以下是对这个Demo中的关键知识点的详细解释: 1...
`resignFirstResponder`方法的作用是让当前的First Responder(在此情况下是键盘)放弃其响应者状态,从而隐藏键盘。然后,我们需要将每个文本框的Did End On Exit事件映射到这个方法。在Xcode中,通过Assistant ...
总结起来,实现iOS键盘隐藏功能的关键步骤包括: 1. 创建自定义的UIBarButtonItem子类,用于存储关联的编辑视图。 2. 创建自定义的UIView子类,用于添加到keyWindow并保持方法活性。 3. 在需要隐藏键盘的编辑视图...
`dismissKeyboard`方法会遍历当前视图控制器的所有子视图,如果它们是可编辑的(如UITextField或UISearchBar),则会调用`resignFirstResponder`方法,隐藏键盘。 ### 方法二:使用UIView的`touchesBegan`方法 1....
通过遵循UITextFieldDelegate协议,我们可以设置代理方法,例如`textFieldShouldReturn:`,当用户按下回车键时,可以调用`resignFirstResponder`方法来隐藏键盘。 2. **UIResponder Chain**:iOS中的所有视图都是...
在事件处理器中,我们可以调用`resignFirstResponder`方法,让当前的文本字段失去焦点,从而隐藏键盘。如果需要更复杂的逻辑,比如保存输入数据或执行特定操作,可以在点击事件中添加相应代码。 对于银行卡密码键盘...
在iOS中,键盘主要由UIKeyboardType定义,但这些预设键盘可能无法满足所有应用场景。为了提供更定制化的输入方式,我们可以自定义一个UIInputView子类,这个子类将作为自定义键盘的视图。 1. **创建自定义键盘** -...
2. **定义方法来隐藏键盘**:创建一个方法来响应手势识别器的触发,并调用UITextField的`resignFirstResponder`方法来隐藏键盘。 ```swift @objc func dismissKeyboard(sender: UITapGestureRecognizer) { view....
而`textFieldShouldReturn`方法则是关键,当用户按下键盘上的“回车”或“完成”键时,我们调用`textField.resignFirstResponder()`方法,这会让textField失去焦点,从而隐藏键盘。 除了通过代理方法,还可以通过...
4. **uitextfield和uitextview的代理方法**:通过实现`textFieldShouldReturn:`或`textViewShouldReturn:`方法,当用户按下“return”键时,可以调用`resignFirstResponder`方法来隐藏键盘。 5. **UIScrollView的...
在实际开发中,还可以根据具体需求进行优化,比如添加判断条件只在特定情况下隐藏键盘,或者设置手势滑动收起键盘等。 此外,对于一些第三方库或框架,如React Native、Flutter等,也有相应的解决方案。例如,在...