Same experience/finding here as Baptiste; I had to use generate_element_display
.
In my case, I’m checking the ACF field on an Options Page, so my version is:
add_filter( 'generate_element_display', function( $display, $element_id ) {
if ( 123 === $element_id ) {
$your_field = get_field( 'your_custom_field', 'option' );
if ( ! $your_field || $your_field == false ) {
$display = false;
}
}
return $display;
}, 10, 2 );