在开发中经常会遇到需要用户输入的情况,比如:登录、注册;
以前的做法是如果用户没有输入内容,点击了登录按钮,弹出一个警告“内容为空”,
更友好的做法是,在用户完成必须填写的内容后,登录按钮才可点击,
效果如下图:
这就需要监听textField中输入的内容,很容易想到去UITextField代理方法里寻找答案,这里有一个简单的方式来实现:
<span style="font-size:14px;">- (void)viewDidLoad
{
_telTextField = [[UITextField alloc]initWithFrame:frame1];
//直接给textField添加事件
[_telTextField addTarget:self action:@selector(listenTextField:) forControlEvents:<span style="color:#ff0000;">UIControlEventEditingChanged</span>];
[self.view addSubview:_telTextField];
_passwordTextField = [[UITextField alloc]initWithFrame:frame2];
//直接给textField添加事件
[_passwordTextField addTarget:self action:@selector(listenTextField:) forControlEvents:<span style="color:#ff0000;">UIControlEventEditingChanged</span>];
[self.view addSubview:_passwordTextField];
}</span>
实现监听方法:
<span style="font-size:14px;">- (void)listenTextField:(MWTextField*)tf
{
if (_telTextField.text.length > 0 && _passwordTextField.text.length > 0) {
[self setLoginBtnState:YES];
}
else {
[self setLoginBtnState:NO];
}
}
- (void)setLoginBtnState:(BOOL)canClick
{
if (canClick) {
_loginBtn.userInteractionEnabled = YES;
_loginBtn.backgroundColor = MainColor;
}
else {
_loginBtn.userInteractionEnabled = NO;
_loginBtn.backgroundColor = [UIColor lightGrayColor];
}
}</span>
完毕!