zoukankan      html  css  js  c++  java
  • 自定义TextField的删除按钮

    自定义TextField的删除按钮

     

    #import <UIKit/UIKit.h>

     

    @interface CustomTextField : UITextField

     

    @property(strong,nonatomic)NSString * alwaysShowStr;

     

    @end

     

     

    @interface CustomTextField ()

    {

        UIButton * _button;

    }

    @end

     

    @implementation CustomTextField

     

    - (id)initWithFrame:(CGRect)frame

    {

        self = [super initWithFrame:frame];

        if (self) {

            // Initialization code

        }

        return self;

    }

     

     

    - (void)drawRect:(CGRect)rect

    {

        // Drawing code

        

        self.layer.borderWidth = 1.0;

        self.layer.borderColor = [UIColor lightGrayColor].CGColor;

        

        UIView * view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 20)];

        self.leftView = view;

        self.leftViewMode = UITextFieldViewModeAlways;

        

        _button = [UIButton buttonWithType:UIButtonTypeCustom];

        _button.frame = CGRectMake(0, 0, 40, 40);

        [_button addTarget:self action:@selector(deleteSelfText) forControlEvents:UIControlEventTouchUpInside];

        [_button setImage:[UIImage imageNamed:@"delete.png"] forState:UIControlStateNormal];

        _button.imageEdgeInsets = UIEdgeInsetsMake(13,18,13,8);

        UIView * rightView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];

        [rightView addSubview:_button];

        self.rightView = rightView;

        self.rightViewMode = UITextFieldViewModeAlways;

        _button.hidden = YES;

        [self addTarget:self action:@selector(textHadLength) forControlEvents:UIControlEventAllEvents];

    }

     

    -(void)deleteSelfText{    

        self.text = _alwaysShowStr;

        if (!_alwaysShowStr) {

             _button.hidden = YES;

        }

    }

     

    -(void)textHadLength

    {

        if (self.text.length>=1) {

            _button.hidden = NO;

        }else{

            _button.hidden = YES;

        }

      if (!self.editing) {

            _button.hidden = YES;

        }

    }

     

    -(CGRect)rightViewRectForBounds:(CGRect)bounds

    {

        return CGRectMake(self.width-40, 0, 40, 40);

    }

     

    /*

    // Only override drawRect: if you perform custom drawing.

    // An empty implementation adversely affects performance during animation.

    - (void)drawRect:(CGRect)rect

    {

        // Drawing code

    }

    */

     

    @end

  • 相关阅读:
    Linux学习笔记——虚拟机VMWare和Ubuntu的安装
    毕业大论文格式排版(页眉页脚)Issue及解决办法
    NAT详解
    ARP是如何工作的?
    以太网,IP,TCP,UDP数据包分析
    mac os 10.10下安装android studio问题:android studio was unable to find a valid jvm
    Fragment的生命周期&同一Activity下不同Fragment之间的通信
    Android开发:碎片Fragment完全解析fragment_main.xml/activity_main.xml
    Android系统中长按事件的实现机制解析
    Linux 系统库函数coreleft 与sbrk简介
  • 原文地址:https://www.cnblogs.com/tianlin106/p/3928686.html
Copyright © 2011-2022 走看看