shouldChangeCharactersInRange 没有被调用

shouldChangeCharactersInRange is not getting called

我在警报视图中有一个名为 phoeNumberTF 的文本字段。

phoneNumberTF.delegate = self;

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Enter your phone number" message:nil preferredStyle:UIAlertControllerStyleAlert];

[alert addAction:[UIAlertAction
                  actionWithTitle:@"Send"
                  style:UIAlertActionStyleDefault
                  handler:^(UIAlertAction * action)
                  {
                      NSArray * textfields = alert.textFields;
                      phoneNumberTF = textfields[0];
                      [self sendPhoneNumber:phoneNumberTF.text];
                  }]];

shouldChangeCharactersInRange 委托方法未被调用

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{

}

phoneNumberTF 不是 UIAlertController 的一部分,因此不需要委托 phoneNumberTF.delegate = self;

将配置委托添加到您的 UIAlertController

 UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Enter your phone number" message:nil preferredStyle:UIAlertControllerStyleAlert];


[alert addTextFieldWithConfigurationHandler:^(UITextField *textField) 
{

textField.delegate = self;
}]; 

有关更多信息,请获取示例