iOS TextField监听、判断按钮可用及BUG修复
简介:监听TF输入是否合法,不合法时禁用注册按钮。
实现:
TF监听
//监听放在viewDidLoad中
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(textFieldTextChanged:)
name:UITextFieldTextDidChangeNotification
object:nil];
- (void)textFieldTextChanged:(NSNotification *)notification
{
[self judgeLoginBtnEnable];
}
NSNotification详细讲解: NSNotification
按钮判断
- (void)judgeLoginBtnEnable
{
if ([TFVerification checkPsd:self.passwordTextField.text]
&& [TFVerification checkUsername:self.usernameTextField.text]
&& [TFVerification checkCompanyName:self.companyTextField.text])
{
[self.loginButton setEnabled:YES];
}
else
{
[self.loginButton setEnabled:NO];
}
}
BUG修复
放置了上面的监听还忽略了一种情况:用户什么都不输入,直接操作按钮。
因此需要在创建按钮时也验证可用性。
//1
self.loginButton = loginButton;
[self judgeLoginBtnEnable];
//2
[self judgeLoginBtnEnable];
self.loginButton = loginButton;
答案是1. 原因:判断可用性时使用了self.loginButton 第二种方法在执行判断时属性还未赋值。