在我的应用程序中,我有一个包含3个文本字段的视图。在他们全部填写之前,我希望我的按钮被禁用。在故事板中我启用了它,但是在我的ViewDidLoad中我添加了这个:
if (amtYouOwe.text.length == 0 && personYouOweMoney.text.length == 0 && self.cellNum.text.length == 0)
{
saveButton.enabled = NO;
}
即使填写了所有字段,我的按钮也被禁用。然后我尝试将其放入我的IBAction保存按钮。这次我得到了相反的结果。无论我的按钮是什么启用。即使所有文本字段都是空白的。我相信我的代码是正确的,我只是想找到一个完美的地方把它放进去....
所有的帮助都表示赞赏,提前谢谢。
答案 0 :(得分:4)
编写一个函数来启用/禁用saveButton
-(void)enableDisableSave{
if (amtYouOwe.text.length == 0 && personYouOweMoney.text.length == 0 && self.cellNum.text.length == 0){
saveButton.enabled = NO;
} else {
saveButton.enabled = YES;
}
}
编写textField的委托方法,将视图控制器作为委托分配给所有文本字段,编写以下委托方法并在其中调用该方法和bingo ..
- (void)textFieldDidEndEditing:(UITextField *)textField {
[self enableDisableSave];
}
希望有所帮助。
答案 1 :(得分:0)
您应该在UITextField委托方法中添加按钮启用/禁用控件。每次编辑文本字段时,请检查所有文本字段的长度并更改按钮状态。
答案 2 :(得分:0)
如果您想要实时检查,请使用:
- (void)viewDidLoad {
[super viewDidLoad];
// ..
// your code
// ..
[self addTextChangedEvent];
[self toggleSaveButtonStatus];
}
- (void)addTextChangedEvent {
[amtYouOwe addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
[personYouOweMoney addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
[self.cellNum addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
}
- (void)textFieldDidChange:(UITextField *)textField {
[self toggleSaveButtonStatus];
}
- (void)toggleSaveButtonStatus {
int youOweLength = amtYouOwe.text.length;
int personYouOweLength = personYouOweMoney.text.length;
int cellNumLength = self.cellNum.text.length;
saveButton.enabled = youOweLength > 0 && personYouOweLength > 0 && cellNumLength > 0;
}
答案 3 :(得分:0)
写入.pch文件
此宏不允许空格..
#define allTrim( object ) [object stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ]
然后编写委托方法
- (void)textFieldDidEndEditing:(UITextField *)textField {
[self enableDisableSave];
}
编写一个函数来启用/禁用saveButton
-(void)enableDisableSave{
if ([allTrim(amtYouOwe.text) length] == 0 && [allTrim(personYouOweMoney.text) length] == 0 && [allTrim(self.cellNum.text) length] == 0){
saveButton.enabled = NO;
} else {
saveButton.enabled = YES;
}
}
快乐编码!!!