首先添加UITextFieldDelegate,然后textFiled.delegate = self;下面就是实现UITextFieldDelegate的两个方法了,如下:
//编辑前调整
- (void)textFieldDidBeginEditing:(UITextField *)textField{
CGRect r = [textField convertRect:textField.frame toView:appDelegate.window];//将textField坐标系转换成整个屏幕的坐标系
CGFloat y = 0.0;
CGFloat y1 = 0.0;
//横竖屏四种情况,算出textField在屏幕坐标系中的高度y,算出屏幕高度与键盘高度差y1
if (appDelegate.interfaceOrientation == UIInterfaceOrientationPortrait) {
y = CGRectGetMaxY(r);
y1 = SCREEN_HEIGHT - KEYBOARD_HEIGHT;
} else if (appDelegate.interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {
y = SCREEN_HEIGHT - r.origin.y;
y1 = SCREEN_HEIGHT - KEYBOARD_HEIGHT;
} else if (appDelegate.interfaceOrientation == UIDeviceOrientationLandscapeRight) {
y = r.origin.x + r.size.width ;
y1 = SCREEN_WIDTH - KEYBOARD_HEIGHTForHorizontal;
}else {
y = SCREEN_WIDTH - r.origin.x;
y1 = SCREEN_WIDTH - KEYBOARD_HEIGHTForHorizontal;
}
//当键盘能遮盖时做处理
if (y > y1) {
float offsetY = y - y1;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.2];
r = view.frame; //view为textField所在需要调整的view
preFrame = r; //记录大小以便调整回来
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.2];
r.origin.y = r.origin.y - offsetY;
view.frame = r; //调整view的y值
[UIView commitAnimations];
viewHasMove = YES; //记录是否调整
}
}
//编辑后恢复
- (void)textFieldDidEndEditing:(UITextField *)textField{
if (viewHasMove) { //已调整
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.2];
view.frame = preFrame; //
[UIView commitAnimations];
viewHasMove = NO;
}
}
分享到:
相关推荐
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的属性基本上上面都描述了,以及键盘的回调方法
oc TextField 键盘弹出移动位置 //上移后,textField需要额外高于键盘顶部的距离,默认为0 @property (nonatomic, assign) CGFloat offset; //需要向上移动的view,默认为keyWindow @property (nonatomic, weak) ...
ExtJS TextField常用方法
自定义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边框