根据 UITextField 长度更改按钮 属性
Change button property depending of UITextField length
我尝试根据用户在文本字段中输入的文本长度更改我的按钮状态。我不知道为什么以下逻辑不起作用:
-(IBAction)doneButtonFired:(id)sender{
if ([self.myTextField.text length] > 0){
self.doneButton.enabled = YES;
NSLog(@"YES");
[self.delegate stringChangedTo:self.myTextField.text atIndex:self.indexToPass];
[self.delegate completeTask:[self getTimeDifference:self.oldDate]];
[self.navigationController popViewControllerAnimated:YES];
} else if ([self.myTextField.text length] < 1){
NSLog(@"NOO");
self.doneButton.enabled = NO;
}
}
那也行不通(因为它检查旧值):
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if ([self.myTextField.text length] > 0){
NSLog(@" > 0");
} else if ([self.myTextField.text length] == 0){
NSLog(@" < 0");
}
return YES;
}
如何解决这个简单的问题?
尝试放置如下内容:
[self.myTextField addTarget:self
action:@selector(textFieldDidChange:)
forControlEvents:UIControlEventEditingChanged];
然后在你viewDidLoad中:
-(void) textFieldDidChange:(UITextField *)textField
{
if([textField.text length]>0){
self.doneButton.enabled = YES;
}else{
self.doneButton.enabled = NO;
}
}
我尝试根据用户在文本字段中输入的文本长度更改我的按钮状态。我不知道为什么以下逻辑不起作用:
-(IBAction)doneButtonFired:(id)sender{
if ([self.myTextField.text length] > 0){
self.doneButton.enabled = YES;
NSLog(@"YES");
[self.delegate stringChangedTo:self.myTextField.text atIndex:self.indexToPass];
[self.delegate completeTask:[self getTimeDifference:self.oldDate]];
[self.navigationController popViewControllerAnimated:YES];
} else if ([self.myTextField.text length] < 1){
NSLog(@"NOO");
self.doneButton.enabled = NO;
}
}
那也行不通(因为它检查旧值):
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if ([self.myTextField.text length] > 0){
NSLog(@" > 0");
} else if ([self.myTextField.text length] == 0){
NSLog(@" < 0");
}
return YES;
}
如何解决这个简单的问题?
尝试放置如下内容:
[self.myTextField addTarget:self
action:@selector(textFieldDidChange:)
forControlEvents:UIControlEventEditingChanged];
然后在你viewDidLoad中:
-(void) textFieldDidChange:(UITextField *)textField
{
if([textField.text length]>0){
self.doneButton.enabled = YES;
}else{
self.doneButton.enabled = NO;
}
}