ios输入框被键盘挡住的解决办法
来源:互联网 发布:linux idle process 编辑:程序博客网 时间:2024/05/17 09:09
实现方法:
方法很简单吧?请注意一定不要忘记设置输入框的代理delegate哦
1)将输入框的代理设置为self
(在lb文件中将输入框的delegate设置为File’s Owner 。或者使用代码textField.delegate = self;
2)将输入框所对应的ViewController.h设置实现了UITextFieldDelegate协议
在ViewController.m文件中实现UITextFieldDelegate的三个方法即可:
- //开始编辑输入框的时候,软键盘出现,执行此事件
- -(void)textFieldDidBeginEditing:(UITextField *)textField
- {
- CGRect frame = textField.frame;
- int offset = frame.origin.y + 32 - (self.view.frame.size.height - 216.0);//键盘高度216
- NSTimeInterval animationDuration = 0.30f;
- [UIView beginAnimations:@"ResizeForKeyboard" context:nil];
- [UIView setAnimationDuration:animationDuration];
- //将视图的Y坐标向上移动offset个单位,以使下面腾出地方用于软键盘的显示
- if(offset > 0)
- self.view.frame = CGRectMake(0.0f, -offset, self.view.frame.size.width, self.view.frame.size.height);
- [UIView commitAnimations];
- }
- //当用户按下return键或者按回车键,keyboard消失
- -(BOOL)textFieldShouldReturn:(UITextField *)textField
- {
- [textField resignFirstResponder];
- return YES;
- }
- //输入框编辑完成以后,将视图恢复到原始状态
- -(void)textFieldDidEndEditing:(UITextField *)textField
- {
- self.view.frame =CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
- }
- //开始编辑输入框的时候,软键盘出现,执行此事件
- -(void)textFieldDidBeginEditing:(UITextField *)textField
- {
- CGRect frame = textField.frame;
- int offset = frame.origin.y + 32 - (self.view.frame.size.height - 216.0);//键盘高度216
- NSTimeInterval animationDuration = 0.30f;
- [UIView beginAnimations:@"ResizeForKeyboard" context:nil];
- [UIView setAnimationDuration:animationDuration];
- //将视图的Y坐标向上移动offset个单位,以使下面腾出地方用于软键盘的显示
- if(offset > 0)
- self.view.frame = CGRectMake(0.0f, -offset, self.view.frame.size.width, self.view.frame.size.height);
- [UIView commitAnimations];
- }
- //当用户按下return键或者按回车键,keyboard消失
- -(BOOL)textFieldShouldReturn:(UITextField *)textField
- {
- [textField resignFirstResponder];
- return YES;
- }
- //输入框编辑完成以后,将视图恢复到原始状态
- -(void)textFieldDidEndEditing:(UITextField *)textField
- {
- self.view.frame =CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
- }
方法很简单吧?请注意一定不要忘记设置输入框的代理delegate哦
实现效果如下图所示:
0 0
- iOS 键盘挡住输入框的解决办法
- ios输入框被键盘挡住的解决办法
- ios输入框被键盘挡住的解决办法
- iOS 输入框被键盘挡住的解决办法
- ios输入框被键盘挡住的解决办法
- ios输入框被键盘挡住的解决办法
- ios输入框被键盘挡住的解决办法
- ios输入框被键盘挡住的解决办法
- ios输入框被键盘挡住的解决办法
- ios输入框被键盘挡住的解决办法
- 输入框挡住键盘的解决办法
- iOS 键盘挡住输入框的解决方案
- HTML5 虚拟键盘出现挡住输入框的解决办法
- Android:键盘挡住输入框解决办法
- Android:键盘挡住输入框解决办法
- Android:键盘挡住输入框解决办法
- Android:键盘挡住输入框解决办法
- Android各种键盘挡住输入框解决办法
- MFC类别信息保存和提取
- 查看当前设备可用内存与程序占用内存
- Android 4.2 Input Event事件处理流程<一>事情派发
- 19 广域网 WAN
- 数组处理方法 API文档
- ios输入框被键盘挡住的解决办法
- 通过samba服务器在debian/ubuntu和windows下共享目录
- 【中期检查】 搭建Android服务器并与浏览器交互总结一
- 一转倾心 OPPO N1 mini降价 OPPO N1 mini值不值得购买介
- C++位运算详解
- groupadd/groupmod/groupdel
- OC-字符串常用操作(NSString、NSMutableString)
- 用C++设计一个不能被继承的类
- 【转】struts.xml详解