常常我们在做界面的时候会用到文本框输入,但当把输入文本框放的过于低,就会导致在填写信息的时候弹出的虚拟键盘遮盖输入文本框,导致看不见所输入的信息,这对于用户体验当然很不好,所以我们需要改进这一情况,方法大致就是在点击输入文本框准备输入的时候,使得文本框上移到用户能看见的地方。这方法是网上资料,或许还有别的更好的解决方法,希望大家都能发出来。
比如如下的UIViewController有一个UITextField对象
@interface MyViewController : UIViewController <UITextFieldDelegate>
{
UITextField *textField;
}
记住这里要加上<UITextFieldDelegate>,使得UITextField对象能用代理方法
当然在viewDidLoad方法中,要设置 textField.delegate = self;这样就能找到自己的代理方法实现
如下的代理方法:
//该方法为点击输入文本框要开始输入是调用的代理方法:就是把view上移到能看见文本框的地方
- (void)textFieldDidBeginEditing:(UITextField *)textField{
CGFloat keyboardHeight = 216.0f;
if (self.view.frame.size.height - keyboardHeight <= textField.frame.origin.y + textField.frame.size.height) {
CGFloat y = textField.frame.origin.y - (self.view.frame.size.height - keyboardHeight - textField.frame.size.height - 5);
[UIView beginAnimations:@"srcollView" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.275f];
self.view.frame = CGRectMake(self.view.frame.origin.x, -y, self.view.frame.size.width, self.view.frame.size.height);
[UIView commitAnimations];
}
}
//该方法为点击虚拟键盘Return,要调用的代理方法:隐藏虚拟键盘
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
//该方法为完成输入后要调用的代理方法:虚拟键盘隐藏后,要恢复到之前的文本框地方
- (void)textFieldDidEndEditing:(UITextField *)textField{
[UIView beginAnimations:@"srcollView" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.275f];
self.view.frame = CGRectMake(self.view.frame.origin.x, 0, self.view.frame.size.width, self.view.frame.size.height);
[UIView commitAnimations];
}
分享到:
相关推荐
ios应用源码之让键盘消失textfield .
IOS应用源码之让键盘消失textField .zip
IOS应用源码——让键盘消失textField.zip
IOS应用源码——让键盘消失textField.rar
iOS textField弹出自定义键盘(弹出日期时间、省市、国家等类型的键盘)
TextField和键盘上移位置,tableView自动上移到键盘上边的位置
http://blog.csdn.net/duxinfeng2010/article/category/1155790 有详细解释
实现键盘的点击隐藏和解决textField被呼出键盘挡住的问题的简单代码
手工创建TextField,TextField的属性基本上上面都描述了,以及键盘的回调方法
ExtJS TextField常用方法
oc TextField 键盘弹出移动位置 //上移后,textField需要额外高于键盘顶部的距离,默认为0 @property (nonatomic, assign) CGFloat offset; //需要向上移动的view,默认为keyWindow @property (nonatomic, weak) ...
自定义textfield
项目中总有很多地方需要对输入文本textField和textView做键盘适配,即当键盘升起时可能需要将输入文本上移,键盘消失则归位。 个人多次拷贝同样代码,秉着不重复造轮子原则,封装了一个视图,解决了问题。 ...
自定义输入textfield,这个源码是在源码天堂那个转载过来的,具体大家可以到那里看看一下吧,希望大家能够喜欢。 演示图:http://code.662p.com/view/10936.html
类似于即时聊天界面的输入发送TextField工具条,可以随键盘的显示和输入法切换导致的键盘高度变化而自动变化TextField的位置。
一行代码解决textField输入中文长度限制 一行代码解决textField输入中文长度限制 一行代码解决textField输入中文长度限制
Java组件的使用(Bottun,TextField等的使用方法,适合初学Java的人员参考)
点击textField,屏幕下方自定义UIView随软键盘同时推出和退下
对UITextField的类的扩展。 很好用的键盘扩展及键盘回收的使用 只要调用一句话方法 键盘随心所以
ExtJs5 去掉textfield边框