经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 移动开发 » iOS » 查看文章
iOS UITextField的代理<UITextFieldDelegate>的几点笔记
来源:cnblogs  作者:纯粹的code  时间:2018/12/13 9:22:51  对本文有异议

 今天做项目的时候,有个需求,点击按钮,就在特定的编辑框输入按钮中的文字,一开始我还以C++的思想来写,先获取光标的位置,然后在判断是否在那个编辑框,进行输入。后来我旁边的同事看到了直接教我用代理方法,因为接触iOS没多久,也不清楚<UITextFieldDelegate>的用法。非常感谢我同事。

1、代理<UITextFieldDelegate>

  1. @interface idiom_ViewController ()<UITextFieldDelegate>
  2. {
  3. UITextField * _selectTf;
  4. NSArray *UIButton_array;
  5. }
  6. @property (weak, nonatomic) IBOutlet UITextField *first_idiom;
  7. @property (weak, nonatomic) IBOutlet UITextField *second_idiom;
  8. @property (weak, nonatomic) IBOutlet UITextField *third_idiom;
  1. - (void)viewDidLoad {
  2. [super viewDidLoad];
  3. //实现UITextFieldDelegate的协议
  4. _first_idiom.delegate=self;
  5. _second_idiom.delegate =self;
  6. _third_idiom.delegate =self;
  7. //点击编辑框隐藏软键盘
  8. _first_idiom.inputView =[UIView new];
  9. _second_idiom.inputView =[UIView new];
  10. _third_idiom.inputView =[UIView new];
  11. //创建手势识别对象并监听手势
  12. UITapGestureRecognizer * tap =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction)];
  13. [self.view addGestureRecognizer:tap];
  14. // Do any additional setup after loading the view from its nib.
  15. }
  1. //失去焦点
  2. -(void)tapAction{
  3. [self.view endEditing:YES];
  4. }
  5. -(void)textFieldDidEndEditing:(UITextField *)textField{
  6. _isBeginTf =NO;
  7. }
  8. -(void)textFieldDidBeginEditing:(UITextField *)textField
  9. {
  10. _isBeginTf =YES;
  11. _selectTf =textField;
  12. }

2、按钮点击事件-编辑框输入按钮文字

  1. - (void)button_word:(UIButton *)btn
  2. {
  3. if (!_isBeginTf) {
  4. return;
  5. }
  6. _selectTf.text = [NSString stringWithFormat:@"%@%@",_selectTf.text,btn.titleLabel.text];
  7. btn.userInteractionEnabled =NO;
  8. btn.backgroundColor =[UIColor lightGrayColor];
  9. }

3、删除按钮事件

  1. - (IBAction)goBackButtonAction:(id)sender {
  2. if (!_isBeginTf) {
  3. return;
  4. }
  5. if ([_selectTf.text isEqualToString:@""]) {
  6. return;
  7. }
  8. //获取编辑框最后一个文字
  9. NSString *gaBackStr =[_selectTf.text substringWithRange:NSMakeRange(_selectTf.text.length-1, 1)];
  10. //获取编辑框length -1的文字
  11. _selectTf.text =[_selectTf.text substringToIndex:_selectTf.text.length -1];
  12. for (int i=0; i<12; i++) {
  13. UIButton *btn= UIButton_array[i];
  14. //判断删除的文字和按钮中的文字是否相同
  15. if ([btn.titleLabel.text isEqualToString:gaBackStr]) {
  16. //相同,按钮从不可点击变为可点击,颜色改变
  17. btn.userInteractionEnabled =YES;
  18. btn.backgroundColor =[UIColor orangeColor];
  19. return;
  20. }
  21. }
  22. }

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号