文档章节

Category:UITextField添加点击事件

幽默的老司机
 幽默的老司机
发布于 2016/07/15 16:58
字数 177
阅读 128
收藏 0
#import <UIKit/UIKit.h>

typedef void (^Handler)(UITextField *txtf);

@interface UITextField (ZJDateField)

/*! @brief  点击右侧图标执行的操作 */
@property (nonatomic, copy) Handler handler;

+ (instancetype)setupTextField;

+ (instancetype)textFieldWithRightImage:(NSString *)imageName clickHandler:(Handler)handler;

- (void)setLeftPadding:(CGFloat)leftWidth;

@end

 

#import "UITextField+ZJDateField.h"
#import <objc/runtime.h>

static void *kTxtfRightBtnHandler;

@implementation UITextField (ZJDateField)

- (void)setHandler:(Handler)handler {
    objc_setAssociatedObject(self, &kTxtfRightBtnHandler, handler, OBJC_ASSOCIATION_COPY);
}

- (Handler)handler {
    return objc_getAssociatedObject(self, &kTxtfRightBtnHandler);
}


+ (instancetype)setupTextField {
    UITextField *txtf = [[UITextField alloc] init];
    txtf.font = [UIFont systemFontOfSize:14];
    txtf.textColor = [UIColor blackColor];
    txtf.layer.borderColor = [UIColor lightGrayColor].CGColor;
    txtf.layer.borderWidth = 1.5f;
    txtf.layer.cornerRadius = 4.f;
    txtf.clipsToBounds = YES;
    [txtf setLeftPadding:8];
    return txtf;
}

+ (instancetype)textFieldWithRightImage:(NSString *)imageName clickHandler:(Handler)handler {
    UITextField *txtf = [UITextField setupTextField];
    txtf.handler = handler;
    txtf.rightViewMode = UITextFieldViewModeAlways;
    UIButton *rightBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    [rightBtn setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
    [rightBtn addTarget:txtf action:@selector(didClickRightButton) forControlEvents:UIControlEventTouchUpInside];
    rightBtn.frame = CGRectMake(0, 0, 40, 40);
    txtf.rightView = rightBtn;
    return txtf;
    
}

- (void)didClickRightButton {
    if (self.handler) {
        self.handler(self);
    }
}

- (void)setLeftPadding:(CGFloat)leftWidth {
    CGRect frame = self.frame;
    frame.size.width = leftWidth;
    UIView *leftview = [[UIView alloc] initWithFrame:frame];
    self.leftViewMode = UITextFieldViewModeAlways;
    self.leftView = leftview;
}

 

© 著作权归作者所有

幽默的老司机

幽默的老司机

粉丝 3
博文 27
码字总数 3808
作品 3
昌平
程序员
私信 提问
iOS开发之UITextField

UITextField展示的是一些可编辑的内容,并且与用户有一些交互。比如当你在虚拟键盘上按下return键时,一般会关联到键盘隐藏事件上。UITextField的一些状态大多在UITextFieldDelegate协议中有...

code_free
2014/07/21
625
0
UITextField的使用

( X ) ( 4 ) 代码实现清理UITextField效果 // 代码实现 清除效果 self.textField.clearButtonMode = UITextFieldViewModeAlways; /* 默认没有状态 UITextFieldViewModeNever, 第一响应的时候......

阴雨音语
2016/01/27
48
0
iOS 使用ASIHTTPRequest 手机归属地查询

使用ASI框架,必须先导入ASIHTTPRequest源文件和ASI依赖的框架,具体的怎么使用ASI可以google一下。 这里我使用的查询接口 http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/...

广州英趣科技
2013/08/04
1K
0
触摸非输入区(背景)使UITextField(UISearchBar)键盘消失的方法

在iOS上出现软键盘后,希望点击非键盘部分,隐藏键盘,即使键盘消失的方法讨论。 第一种方法:增加一个button,相应touch down事件,隐藏键盘。这种方法,太山寨了。为了相应一个事件增加一个...

青云_K
2012/12/10
1K
2
iOS-开发小技巧

在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新。 UITableView的Group样式下顶部空白处理 获取某个view所在的控制器 两种方法删除NSUserDefaults所有记录 打印系统所有已...

袭锐
2017/07/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
51分钟前
4
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
4
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
13
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
14
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部