根据 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;
  }
}