TextField中内容发生变化后自动更新到label中

TextField中内容发生变化后自动更新到label中,需要监听UITextField控件变化的事件,即当UITextField中内容发生变化时立即更新到UILable控件。

1)修改ViewController.h,添加操作
-(IBAction)textFieldDidChange:(id)sender;
//方法do与xib文件中的UITextField的Editting Changed事件关联起来



2)将UITextField控件与textFieldDidChange操作进行关联,选择Editting Changed事件


注意:菜鸟连线的时候,不知道如何选择Editting Changed事件,哈 哈  我也是尝试了几分钟  哎, 菜鸟嘛,可以理解  啦  啦 啦 ,选中UITextField控件,看右边,Editting Changed 后面有个小圆圈,左键按下,连线到 File'sOwner如图:
[img]

[/img]





3)修改ViewController.m,实现操作textFieldDidChange,如下所示
//textField正在编辑
-(IBAction)textFieldDidChange:(id)sender{
    label.text = textField.text;
}





8、编译、运行,在TextField中输入内容时,UILabel会即时更新

1)但是,存在一个问题:输入完毕,点击键盘右下角的return或点击view上其它空白区域时,键盘不会消失(这个与Android键盘不同),需要我们编码实现。

2)修改ViewController.h,添加操作
-(IBAction)textFieldDoneEndEditing:(id)sender;//方法textFieldDoneEndEditing与xib文件中的UITextField的Did End On Exit事件关联起来
-(IBAction)backgroudTap:(id)sender;//方法backgroudTap与xib文件中的view的Touch Down事件关联起来


3)将UITextField控件与textFieldDoneEndEditing操作进行关联,选择Did End On Exit事件


4)将view控件与backgroudTap操作进行关联,发现没有响应,
[img]

[/img]
选中ViewController.xib,再选中View,如上图所示,将view的calss由UIView修改为UIControl,因为能够触发操作方法的所有控件必须继承自UIControl。再次操作,进行操作关联。



5)修改ViewController.m,实现操作textFieldDoneEndEditing、backgroudTap,如下
//textField编辑完毕
-(IBAction)textFieldDoneEndEditing:(id)sender{
    //textField放弃第一响应者
    [sender resignFirstResponder];
}

//背景view被点击
-(IBAction)backgroudTap:(id)sender{
    [textField resignFirstResponder];
}


至此,已实现全部功能





猜你喜欢

转载自android-zhang.iteye.com/blog/1758453