iOS:一句代码实现文本输入的限制

本文介绍了一款针对iOS开发的输入控件限制工具,能够便捷地为UITextView和UITextField设置输入格式、长度限制及实时回调,提高了开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

实际开发中,往往需要处理UITextView、UITextField输入的限制。比如输入必须是价格格式(一个小数点、小数点后面最多两位);输入最大长度限制;对输入内容的实时回调。处理这些的时候,我们通常需要做一些繁琐重复的工作。

这里献上本人写的一个小工具,提前声明,这个工具主要是提供一种提高效率解决思路,更多的正则表达式还是得自行添加。

用法

将YBInputLimit文件夹拖入工程(注意不要拖到最外层的文件夹)

导入文件 #import "UIView+YBInputLimit.h"

注意:由于是UIView的分类,同时适用于UITextView、UITextField

//* 一句代码实现(链式语法的使用)
    [textfield setYBInputLimit:YBInputLimitModel
     .initialization
     .setInputLimitType(YBInputLimitType_numbers|YBInputLimitType_lettersSmall)
     .setMaxLength(10)
     .setTextChanged(^(id observe){

    })];
//* 常规实现
    YBInputLimitModel *model = [YBInputLimitModel new];
    model.inputLimitType = YBInputLimitType_numbers|YBInputLimitType_lettersSmall;
    model.maxLength = 10;
    [model setTextChanged:^(id observe){

    }];
    [textfield setYBInputLimit:model];

如果你不喜欢使用block,可以使用下面这种方法

[textfield setYBInputLimit:YBInputLimitModel
     .initialization
     .setInputLimitType(YBInputLimitType_numbers|YBInputLimitType_lettersSmall)
     .setMaxLength(10)
     .addTargetAndAction(self, @selector(sel0:))];
YBInputLimitModel *model = [YBInputLimitModel new];
    model.inputLimitType = YBInputLimitType_numbers|YBInputLimitType_lettersSmall;
    model.maxLength = 10;
    [model addTargetOfTextChange:self action:@selector(sel0:)];
    [textfield setYBInputLimit:model];

如果大家有更多的需求,可以自行添加YBInputLimitType枚举值,并且实现,当然,也可以直接传入正则表达式字符串:

//* 直接输入正则
    [textfield setYBInputLimit:YBInputLimitModel.initialization.setRegularStr(@"^[0-9]+$")];

DEMO地址:https://github.com/indulgeIn/YBInputLimit



作者:indulge_in
链接:http://www.jianshu.com/p/bd70c24a7021
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值