美文网首页
UITextField 事件监听四种方式

UITextField 事件监听四种方式

作者: Dosun | 来源:发表于2017-09-25 18:30 被阅读790次

    一、添加监听对象

    -(void)awakeFromNib{
        [super awakeFromNib];
        [self addTarget:self action:@selector(textFildBegin) forControlEvents:UIControlEventEditingDidBegin];
        [self addTarget:self action:@selector(textFildEnd) forControlEvents:UIControlEventEditingDidEnd];
        
        
        
    }
    -(void)textFildBegin{
        NSLog(@"begin");
    
    }
    
    -(void)textFildEnd{
        NSLog(@"end");
    }
    
    
    

    二、代理

    @interface ViewController ()<UITextFieldDelegate>
    @property (weak, nonatomic) IBOutlet XMGLoginTextField *phoneNumber;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        self.phoneNumber.delegate = self;
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    #pragma mark -UITextFieldDelegate
    -(void)textFieldDidBeginEditing:(UITextField *)textField{
        NSLog(@"begin");
    }
    
    -(void)textFieldDidEndEditing:(UITextField *)textField{
        NSLog(@"end");
    }
    
    -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    
        [self.view endEditing:YES];
    }
    
    

    三、通知

    - (void)awakeFromNib
    {
        // 设置光标颜色
        self.tintColor = [UIColor whiteColor];
        // 设置默认的占位文字颜色
        [self setValue:[UIColor grayColor] forKeyPath:XMGPlaceholderColorKey];
        
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(beginEditing) name:UITextFieldTextDidBeginEditingNotification object:self];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(endEditing) name:UITextFieldTextDidEndEditingNotification object:self];
    }
    
    - (void)dealloc
    {
        [[NSNotificationCenter defaultCenter] removeObserver:self];
    }
    
    - (void)beginEditing
    {
        [self setValue:[UIColor whiteColor] forKeyPath:XMGPlaceholderColorKey];
    }
    
    - (void)endEditing
    {
        [self setValue:[UIColor grayColor] forKeyPath:XMGPlaceholderColorKey];
    }
    @end
    
    

    四、是否是键盘的第一响应用者

    //键盘出现
    -(BOOL)becomeFirstResponder{
            self.attributedPlaceholder = [[NSAttributedString alloc] initWithString:self.placeholder attributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
        return [super becomeFirstResponder];
    }
    
    //键盘退出
    -(BOOL)resignFirstResponder{
        self.attributedPlaceholder = [[NSAttributedString alloc] initWithString:self.placeholder attributes:@{NSForegroundColorAttributeName:[UIColor darkGrayColor]}];
        return [super resignFirstResponder];
    }
    

    相关文章

      网友评论

          本文标题:UITextField 事件监听四种方式

          本文链接:https://www.haomeiwen.com/subject/akmdextx.html