iOS开发runtime给工程所有UITextfield属性赋初值
2016-07-19 11:01
399 查看
要求所有UITextfield,输入时显示清空按钮(如上图),所有UITextfield。一个个添加会很麻烦,特别是工程xib和纯代码混合的时候,下面用runtime来做。
贴代码。
创建"UITextField + DIYNAME"的分类,.m文件代码如下
+ (void)load { //方法交换应该被保证,在程序中只会执行一次 static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ //获得viewController的生命周期方法的selector SEL systemSel = @selector(willMoveToSuperview:); //自己实现的将要被交换的方法的selector SEL swizzSel = @selector(myWillMoveToSuperview:); //两个方法的Method Method systemMethod = class_getInstanceMethod([self class], systemSel); Method swizzMethod = class_getInstanceMethod([self class], swizzSel); //首先动态添加方法,实现是被交换的方法,返回值表示添加成功还是失败 BOOL isAdd = class_addMethod(self, systemSel, method_getImplementation(swizzMethod), method_getTypeEncoding(swizzMethod)); if (isAdd) { //如果成功,说明类中不存在这个方法的实现 //将被交换方法的实现替换到这个并不存在的实现 class_replaceMethod(self, swizzSel, method_getImplementation(systemMethod), method_getTypeEncoding(systemMethod)); } else { //否则,交换两个方法的实现 method_exchangeImplementations(systemMethod, swizzMethod); } }); } - (void)myWillMoveToSuperview:(UIView *)newSuperview { [self myWillMoveToSuperview:newSuperview]; if (self) { self.clearButtonMode = UITextFieldViewModeWhileEditing; } }
相关文章推荐
- Firefox2中输入框丢失光标bug的解决方法
- Java Runtime Environment 5.0 Update 12 下载
- 很可爱的输入框
- js限制输入框可输入字节数代码
- JavaScript动态提示输入框输入字数的方法
- JavaScript建立一个语法高亮输入框实现思路
- JS实现单击输入框弹出选择框效果完整实例
- 关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
- bootstrap输入框组代码分享
- JavaScript实现输入框(密码框)出现提示语
- Js制作点击输入框时默认文字消失的效果
- javascript 输入框提示列表效果
- 制作符合用户体验的漂亮的input输入框
- input输入框的自动匹配(原生代码)
- javascript仿百度输入框提示自动下拉补全
- jquery控制表单输入框显示默认值的方法
- jQuery实现手机自定义弹出输入框
- 文本框倒叙输入让输入框的焦点始终在最开始的位置
- 让多个输入框中的内容同时变化的js代码
- 安卓输入框被虚拟键盘挡住的问题(微信开发)