美文网首页
iOS监听UITextView、UITextField键盘删除键

iOS监听UITextView、UITextField键盘删除键

作者: Happy晓哥 | 来源:发表于2017-06-20 16:22 被阅读3077次

    UITextView监听删除键:

    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
        if ([text isEqualToString:@""]) {
            /**< 在这里处理删除键的逻辑 */
        }
    }
    

    UITextField监听删除键:
    UITextField其实里面用的是UIKeyInput,UIKeyInput有一个系统自带的删除方法:

    protocol UIKeyInput <UITextInputTraits>
    
    - (BOOL)hasText;
    - (void)insertText:(NSString *)text;
    - (void)deleteBackward;   <-------就是它删除方法
    @end
    

    自定义一个控件继承 UITextField:

    .h文件
    #import <UIKit/UIKit.h>
    @class YNTextField;
    @protocol YNTextFieldDelegate <NSObject>
    - (void)ynTextFieldDeleteBackward:(YNTextField *)textField;
    @end
    
    @interface YNTextField : UITextField
    @property (nonatomic, assign) id <YNTextFieldDelegate> yn_delegate;
    @end
    
    .m文件
    #import "YNTextField.h"
    @implementation YNTextField
    - (void)deleteBackward {
        !!!这里要调用super方法,要不然删不了东西
        [super deleteBackward];
        if ([self.yn_delegate respondsToSelector:@selector(ynTextFieldDeleteBackward:)]) {
            [self.yn_delegate ynTextFieldDeleteBackward:self];
        }
    }
    @end
    

    这样就可以监听UITextField的删除键了

    相关文章

      网友评论

          本文标题:iOS监听UITextView、UITextField键盘删除键

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