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

来源:互联网 发布:中山 知乎 编辑:程序博客网 时间:2024/05/17 08:20

这里实现是如果点击某个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];
            }
        }       
    }

0 0