美文网首页iOS开发-UITextView
iOS TextField 监听实时输入 避免删除键失灵 监

iOS TextField 监听实时输入 避免删除键失灵 监

作者: WS_0909 | 来源:发表于2017-04-26 11:33 被阅读0次

如果有帮助到你就给个赞吧 谢谢咯...

// 添加监听方法

[_textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

// MARK:  =========  textfield 监听实现  =========

-(void)textFieldDidChange :(UITextField *)theTextField{

if (theTextField.text.length != 11) {  //  11位数字

_loginButton.userInteractionEnabled = NO;

[_loginButton setBackgroundColor:kRGBColor(209, 209, 209, 1)];

} else {

_loginButton.userInteractionEnabled = YES;

[_loginButton setBackgroundColor:kBackgroundColor];

}

}```

   UITextFieldDelegate  代理方法  避免删除键失灵

  • (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

if (range.length == 1 && string.length == 0) {

return YES;

} else if ([textField isEqual:self.accountTF]) {

return textField.text.length < 11;

}

return YES;

}


监听删除键的点击要添加textField分类

.h


//// Created by SDL on 6/20/16.// Copyright © 2016 SDL. All rights reserved.

import "UITextField+Monitor_TextField.h"

@protocol WsTextFieldDelegate
@optional

  • (void)textFieldDidDeleteBackward:(UITextField *)textField;@end@interface UITextField (Monitor_TextField)
    @property (weak, nonatomic) iddelegate;

@end

/**

  • 监听删除按钮

  • object:UITextField

*/

extern NSString * const WsTextFieldDidDeleteBackwardNotification;


.m

//
// Created by SDL on 6/20/16.
// Copyright © 2016 SDL. All rights reserved.
//

import "UITextField+Monitor_TextField.h"

import <objc/objc-runtime.h>

NSString * const WsTextFieldDidDeleteBackwardNotification = @"com.whojun.textfield.did.notification";

@implementation UITextField (Monitor_TextField)

  • (void)load {
    //交换2个方法中的IMP
    Method method_First = class_getInstanceMethod([self class], NSSelectorFromString(@"deleteBackward"));
    Method method_Second = class_getInstanceMethod([self class], @selector(wj_deleteBackward));
    method_exchangeImplementations(method_First, method_Second);
    }
  • (void)wj_deleteBackward {
    [self wj_deleteBackward];

    if ([self.delegate respondsToSelector:@selector(textFieldDidDeleteBackward:)])
    {
    id <Ws_TextFieldDelegate> delegate = (id<Ws_TextFieldDelegate>)self.delegate;
    [delegate textFieldDidDeleteBackward:self];
    }

    [[NSNotificationCenter defaultCenter] postNotificationName:WsTextFieldDidDeleteBackwardNotification object:self];
    }

@end

相关文章

网友评论

    本文标题:iOS TextField 监听实时输入 避免删除键失灵 监

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