UITextField添加Block
来源:互联网 发布:学哪种编程语言好? 编辑:程序博客网 时间:2024/05/16 12:53
1、问题描述
UITextField添加Block
2、问题解决
Demo链接:demo下载地址
使用方法:
[self.zTextField addAction:^(UITextField *tf) { self.zLabel.text = tf.text; } forControlEvents:UIControlEventEditingChanged];
效果如图:
3、具体如下
添加UITextfield的Category
UITextField+Block.h
typedef void(^TextFieldBlock)(UITextField* tf);@interface UITextField (Block)- (void)addAction:(TextFieldBlock)block;- (void)addAction:(TextFieldBlock)block forControlEvents:(UIControlEvents)controlEvents;@end
UITextField+Block.m
#import <objc/runtime.h>@implementation UITextField (Block)static char tfActionTag;- (void)addAction:(TextFieldBlock)block{ objc_setAssociatedObject(self, &tfActionTag, block, OBJC_ASSOCIATION_COPY_NONATOMIC); [self addTarget:self action:@selector(action:) forControlEvents:UIControlEventEditingChanged];}- (void)addAction:(TextFieldBlock)block forControlEvents:(UIControlEvents)controlEvents{ objc_setAssociatedObject(self, &tfActionTag, block, OBJC_ASSOCIATION_COPY_NONATOMIC); [self addTarget:self action:@selector(action:) forControlEvents:controlEvents];}- (void)action:(id)sender{ TextFieldBlock blockAction = (TextFieldBlock)objc_getAssociatedObject(self, &tfActionTag); if (blockAction) { blockAction(self); }}@end
4、知识点描述
①添加分类
②利用o-c的动态特性,进行关联
OC中的关联就是在已有类的基础上添加对象参数。来扩展原有的类,需要引入objc/runtime.h头文件。
关联是基于一个key来区分不同的关联。
常用函数: objc_setAssociatedObject 设置关联
objc_getAssociatedObject 获取关联
objc_removeAssociatedObjects 移除关联
0 0
- UITextField添加Block
- UITextField添加内置图片
- AlertView中添加UITextField
- UIAlertController 添加 UITextField
- 给UITableViewCell添加UITextField
- 好用的UITextField文本监听block
- UIAlertView视图中添加UITextField
- UIAlertView视图中添加UITextField
- 在cocos2d里添加UITextField
- 为 UITextField UITextView 添加toolBar
- 为UITextField添加placeholder属性
- UITextField填写电话号码 添加空格
- iOS UITextField添加分割功能
- Hier block添加参数
- UITextField添加图片 文字居中 iphone
- UITextField添加图片 文字居中 iphone
- UITextField添加图片以及文字居中
- 给UIAlertView添加UITextField模拟登录框
- Walker之引导界面的实现
- 算法描述
- 二进制幂--求解a^n问题
- match vertex
- Android截图命令screencap与视频录制命令screenrecord
- UITextField添加Block
- HTTPS那些事 用java实现HTTPS工作原理
- linux命令--wget
- java
- eclipse的常用快捷键
- 管理Activity
- 新手学JAVA(十)-多线程----线程的创建和启动
- Xamarin Android SDK无法更新的解决办法
- 有赞分层自动化测试实践