iOS UITextField的代理<UITextFieldDelegate>的几点笔记
2024-09-14 18:12:17
今天做项目的时候,有个需求,点击按钮,就在特定的编辑框输入按钮中的文字,一开始我还以C++的思想来写,先获取光标的位置,然后在判断是否在那个编辑框,进行输入。后来我旁边的同事看到了直接教我用代理方法,因为接触iOS没多久,也不清楚<UITextFieldDelegate>的用法。非常感谢我同事。
1、代理<UITextFieldDelegate>
@interface idiom_ViewController ()<UITextFieldDelegate>
{
UITextField * _selectTf;
NSArray *UIButton_array;
}
@property (weak, nonatomic) IBOutlet UITextField *first_idiom;
@property (weak, nonatomic) IBOutlet UITextField *second_idiom;
@property (weak, nonatomic) IBOutlet UITextField *third_idiom;
- (void)viewDidLoad {
[super viewDidLoad];
//实现UITextFieldDelegate的协议
_first_idiom.delegate=self;
_second_idiom.delegate =self;
_third_idiom.delegate =self;
//点击编辑框隐藏软键盘
_first_idiom.inputView =[UIView new];
_second_idiom.inputView =[UIView new];
_third_idiom.inputView =[UIView new];
//创建手势识别对象并监听手势
UITapGestureRecognizer * tap =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction)];
[self.view addGestureRecognizer:tap];
// Do any additional setup after loading the view from its nib.
}
//失去焦点
-(void)tapAction{
[self.view endEditing:YES];
} -(void)textFieldDidEndEditing:(UITextField *)textField{
_isBeginTf =NO;
} -(void)textFieldDidBeginEditing:(UITextField *)textField
{
_isBeginTf =YES;
_selectTf =textField;
}
2、按钮点击事件-编辑框输入按钮文字
- (void)button_word:(UIButton *)btn
{
if (!_isBeginTf) {
return;
}
_selectTf.text = [NSString stringWithFormat:@"%@%@",_selectTf.text,btn.titleLabel.text];
btn.userInteractionEnabled =NO;
btn.backgroundColor =[UIColor lightGrayColor];
}
3、删除按钮事件
- (IBAction)goBackButtonAction:(id)sender {
if (!_isBeginTf) {
return;
} if ([_selectTf.text isEqualToString:@""]) {
return;
}
//获取编辑框最后一个文字
NSString *gaBackStr =[_selectTf.text substringWithRange:NSMakeRange(_selectTf.text.length-, )];
//获取编辑框length -1的文字
_selectTf.text =[_selectTf.text substringToIndex:_selectTf.text.length -]; for (int i=; i<; i++) {
UIButton *btn= UIButton_array[i];
//判断删除的文字和按钮中的文字是否相同
if ([btn.titleLabel.text isEqualToString:gaBackStr]) {
//相同,按钮从不可点击变为可点击,颜色改变
btn.userInteractionEnabled =YES;
btn.backgroundColor =[UIColor orangeColor];
return;
}
} }
最新文章
- StartUML的基础的使用,用例图,序列图
- console 输出信息
- CentOS_7.2安装Redis_3.0
- js基础篇——call/apply、arguments、undefined/null
- mybatis3批量更新 批量插入
- A session had already been started - ignoring session_start() 解决方法
- eclipse集成maven3后,创建java项目详细图解
- MD5加密(16/32)
- ID和Name的区别
- oracle查锁表SQL
- 修改PHP上传大小设置
- css 导航条 布局
- PAT (Basic Level) 1013. 数素数 (20)
- Linux的VI/VIM
- PHP正则表达式完全手册
- php面试题中的约瑟夫环
- 【转】Git代码行统计命令集
- Android ROM开发(一)——Windows下Cygwin和Android_Kitchen厨房的安装
- ARVE: Augmented Reality Applications in Vehicle to Edge Networks
- gitbook 入门教程之实用插件(新增3个插件)
热门文章
- Global Average Pooling Layers for Object Localization
- android:项目迁移error:Please change caller according to com.intellij.....
- selenium&;phantom实战--获取代理数据
- A B C D类网络地址
- Asp.net单点登录解决方案
- iOS设计模式 - 组合
- swift版的StringAttribute
- Redis学习---Redis操作之Hash
- PHP 实现单点登录
- java中判断对象中属性值是否为空的函数