// // Copyright © 2016年 dahua. All rights reserved. // #import typedef void (^LCTextFieldMsgBlock)(NSString *checkingMsg); typedef void (^LCTextFieldInputBlock)(NSString *result); typedef BOOL (^LCTextFieldInputingBlock)(NSString *result,NSString *replace); typedef void (^LCTextFieldTextChangedBlock)(NSString *text); typedef enum : NSUInteger { LCTextFieldMenuTypeCanNone = 0, LCTextFieldMenuTypeCanCopy = 1 << 0, LCTextFieldMenuTypeCanPaste = 1 << 1, LCTextFieldMenuTypeCanSelect = 1 << 2, LCTextFieldMenuTypeCanSelectAll = 1 << 3 } LCTextFieldMenuType; NS_CLASS_AVAILABLE_IOS(7_0) @interface LCTextField : UITextField /*! * @author han_dong, 16-02-23 14:02:52 * * @brief 限制输入 */ //@property (nonatomic, assign) BOOL isMenuItemsEnable; //默认YES. 是否支持长按弹出编辑菜单 @property (nonatomic, assign) BOOL isRuled; //默认NO. 输入是否受限 @property (nonatomic, assign) BOOL disableEmoji; //输入内容禁止emoji表情, 默认为YES @property (nonatomic, assign) BOOL disableSpace; //输入内容禁止全角半角空格符\竖直水平制表符\回车换行换页符等所有空白符, 默认为NO @property (nonatomic, assign) BOOL disableSpecialChar; //输入内容禁止特殊符号, 默认为NO @property (nonatomic, assign) BOOL disableUnderRegEx; @property (nonatomic, assign) NSUInteger chineseStrLength; //默认一个中文算2字节,如有特别需求,可在外部自定义。影响可输入的字节长度。 //允许进行的操作 @property (nonatomic, assign) LCTextFieldMenuType menuType; // storybord中可以使用的属性 @property (nonatomic, assign) IBInspectable BOOL isSetOneTimeCode; ///Warning:⚠️⚠️⚠️,已废弃 @property (nonatomic, assign) BOOL isMenuHidden; /// 居中模式下,text在X方向的偏移量,负值向左,正值向右 @property (nonatomic, assign) CGFloat textOffsetWhenInAlignmentCenter; /*! * @author han_dong, 16-02-23 14:02:31 * * @brief 校验输入 */ @property (nonatomic, assign) BOOL isChecking; //默认为NO. 输入时是否校验 @property (nonatomic, assign) BOOL checkOnTextChanged; //输入框内容发生变化时, 动态校验, 默认为NO @property (nonatomic, assign) BOOL checkOnResign; //输入完成后(更改FirstResponder), 后置校验, 默认为NO @property (nonatomic, assign) unsigned int strLengthCustom; //自定义输入长度 /// 文字变化的block,上层需要注意循环引用!!! @property (nonatomic, copy) LCTextFieldTextChangedBlock textChanged; /// 回调代码块 @property (copy, nonatomic) LCTextFieldInputingBlock inputingBlock; - (void)lc_setInputRuleWithRegEx:(NSString *)stringRegEx andInputLength:(unsigned int)inputLength; //自定义正则表达式字符串. 限制内容及长度. 调用该方法后, 默认将isRuledByRegEx状态置为YES - (void)lc_addRegExToCheckTextField:(NSString *)strRegEx withMsgBlock:(LCTextFieldMsgBlock)msgBlock; //自定义正则表达式, 调用时默认将isChecking状态置为YES - (void)lc_addConfirmValidationToCheckTextField:(LCTextField *)targetTextField withMsgBlock:(LCTextFieldMsgBlock)msgBlock; //用于校验输入确认密码, 调用时默认将isChecking状态置为YES - (void)lc_setBlankMsgBlock:(LCTextFieldMsgBlock)block; //设置空内容提醒 - (BOOL)lc_checkIt; //检验方法, 开放外部调用. + (instancetype)lcTextFieldWithResult:(void(^)(NSString *result))result; @end