我有两个文本字段和一个按钮。我的目标是仅当两个文本字段都包含一些文本时才启用该按钮。
这就是我所做的:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
.....
self.btnLogIn.enabled=NO;
}
我以编程方式创建文本字段,这是代码:
UITextField *textField = [[UITextField alloc] init];
......
textField.delegate=self;
[textField addTarget:self action:@selector(textChanged:) forControlEvents:UIControlEventEditingChanged];
这是事件处理程序:
-(void)textChanged:(UITextField *)textField
{
UITextField *txtPassword = (UITextField *)[self.view viewWithTag:102];
UITextField *txtUsername = (UITextField *)[self.view viewWithTag:101];
if([txtPassword.text length]>0 && [txtUsername.text length]>0)
{
self.btnLogIn.enabled=YES;
}
else
{
self.btnLogIn.enabled=NO;
}
}
我设置了三个断点:
- self.btnLogIn.enabled=否;(在 viewDidLoad 中)
- self.btnLogIn.enabled=YES;(在 textChanged 中)
- self.btnLogIn.enabled=否;(在 textChanged 中)
当我运行该应用程序时,它会达到所有制动点,但该按钮仍处于启用状态。
如果我从设计器中取消选中启用,它总是被禁用。
我究竟做错了什么?
LE:我在实现文件中拖动按钮来创建插座,代码如下:
@property (weak, nonatomic) IBOutlet UIButton *btnLogIn;