¿Cuándo se llama al método textFieldShouldClear?

La documentación de Apple lo ha explicado bastante bien. Aquí, los estoy citando:

El campo de texto llama a este método en respuesta a que el usuario presiona el botón de borrar incorporado. (Este botón no se muestra de manera predeterminada, pero se puede habilitar cambiando el valor en la propiedad clearButtonMode del campo de texto). Este método también se llama cuando comienza la edición y la propiedad clearsOnBeginEditing del campo de texto se establece en YES .

La implementación de este método por parte del delegado es opcional. Si no está presente, el texto se borra como si este método hubiera devuelto YES .

En resumen, estos son los escenarios cuando se llama a este método

  • Cuando presiona el botón de borrar incorporado de un campo de texto.

  • Cuando comience la edición en su campo de texto (y haya establecido la propiedad clearsOnBeginEditing en YES)

Espero que ayude. Para saber más, puede leer la documentación de Apple: UITextFieldDelegate Protocol Reference:

Cada vez que hay algo de contenido en el campo de texto y se presiona la tecla de retroceso o se resalta parte del texto y se realiza la acción “cortar” del portapapeles o cuando se resalta algún texto y el texto resaltado se reemplaza por algún carácter.

Básicamente, cuando se va a eliminar algún contenido en el campo de texto.