我有兩個文本字段和一個按鈕。 我的目標是已啓用的按鈕,只有當這兩個文本字段有一些文字如何以編程方式禁用按鈕?
這是我做的。
- (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;
}
}
我把THR ee斷點:
- self.btnLogIn.enabled = NO; (in viewDidLoad)
- self.btnLogIn.enabled = YES; (在textChanged中)
- self.btnLogIn.enabled = NO; (在textChanged中)
當我運行該應用程序時,它會點擊所有brakpoint,但該按鈕仍處於啓用狀態。
如果我從設計器中取消選中啓用,它始終被禁用。
我在做什麼錯?
LE:我拖着在實現文件的按鈕來創建出口,這是代碼:
@property (weak, nonatomic) IBOutlet UIButton *btnLogIn;
您是否設置了插座,以便您可以在代碼中使用該按鈕? – Wain
您是否正確連接到IB的按鈕插座? – DrummerB
我在實現中拖動它併爲其指定一個名稱(btnLogin),我還需要做其他事情嗎?看起來我也必須做相反的事情,從設計者的按鈕上的實現文件拖動按鈕。奇怪。你可以添加這個評論作爲答案,我可以接受它嗎? – user2611691