iOS-UITextField监听输入内容的解决办法

背景:
有时候,我们想实时监听系统的UITextField控件输入的内容,使用UITextField的代理方法,有些不足之处。比如说,在登录界面,账号和密码输入框如果没有输入内容,那么登录按钮应该是不可选中状态。使用UITextField的代理方法,会多监听到一个\n的输入符号,导致我们不能实时监听输入内容,总会慢一个节拍。当然,\n输入符号是可以处理的,这里我们不选用处理\n的方法,而是采用另外两种监听方法。

监听方式一:

使用系统通知NSNotification,实时UITextField输入的内容。参考代码:

    //根据输入框是否有内容,设置注册按钮是否可以点击
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification object:nil];
/**
 根据输入框的内容显示按钮的状态
 */
-(void)textChange{
    self.ZFScrollView.registerBtn.enabled = (self.ZFScrollView.registerPhoneTextField.text.length && self.ZFScrollView.registerPasswordTextField.text.length);
    self.ZFScrollView.loginBtn.enabled = (self.ZFScrollView.loginPhoneTextField.text.length && self.ZFScrollView.loginPasswordTextField.text.length);
}

监听方式二:

所幸是,UITextField也有监听事件addTarget,那么就使用监听事件。参考代码:

    [self.stallName addTarget:self action:@selector(limitString:) forControlEvents:UIControlEventEditingChanged];
-(void)limitString:(UITextField *)textField
{
        if (textField.text.length > 10) {
            textField.text = [textField.text substringToIndex:10];
        }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值