完善-- iOS之键盘挡住输入框的解决方法

这里实现是如果点击某个TextField的时候整体的View通过计算会向上移动一部分使用户能够看到输入框。(还有一种常用的是用户通过屏幕拖拉让整个view向上滚动,这里不研究)

几个步骤:

1、实现代理UITextFieldDelegate

2、在viewDidLoad中加入

self.textFiled.delegate =self;(这里的textField是你需要向上移动的输入框的控制对象)

3、在ViewController.m文件中实现UITextFieldDelegate的三个方法:

textFieldDidBeginEditing

textFieldShouldReturn

textFieldDidEndEditing

很简单吧,但在我原来的项目中,1、3步都有,就忘了实现第2步,就没有实现该功能(你需要加几个TextFiled输入框,就加几句2里的代码)。

补充:如果有几个编辑控件就加几个,但这样不利于后面的扩展,每增加一个还要手动在加一行,于是做了一个一劳永逸的方法,在viewDidLoad里面加一个遍历,找出每个控件,然后判断是否为编辑控件,是的话就加入委托。代码如下:

//遍历view下的控件,如果是TextField的编辑控件就加委托 for (UIView *subView in self.view.subviews) { for (id controll in subView.subviews) { if ([controll isKindOfClass:[UITextField class]]) { [controll setDelegate:self]; } } }

经验分享 程序员 微信小程序 职场和发展