By default, a View, or any search in WordPress, when you load it, will display all results.
To display nothing at first and load the results only after the User has actually submitted a search there are several approaches.
The official is to split the View, as described here:
https://toolset.com/documentation/user-guides/front-page-filters/#displaying-custom-search onwards.
The unofficial, provided by Nigel some time back:
When you want a Google-style search where no results are initially shown you can use the following code, which will prevent results being displayed until a filter is applied.
Works with custom field filters, taxonomy filters, and/or text field searches.
/**
* No initial results
*
* Don't show View results until a filter has been applied
*
* Tests for custom field filters, taxonomy filters, or text searches
*/
function tssupp_no_initial_results( $query_results, $view_settings, $view_id ){
$target_views = array( 226 ); // Edit to add IDs of Views to add this to
if ( in_array( $view_id, $target_views ) ) {
// if there is a search term set
if ( !isset( $query_results->query['meta_query'] ) && !isset( $query_results->query['tax_query'] ) && !isset( $query_results->query['s'] ) ) {
$query_results->posts = array();
$query_results->post_count = 0;
}
}
return $query_results;
}
add_filter( 'wpv_filter_query_post_process', 'tssupp_no_initial_results', 10, 3 );
I do not suggest this approach thou, as it's simply not how it's supposed to work.
The Views have GUI settings for this to work just fine, but it requires that you load a new (results) page.
The "No results found" is triggered *only* if you have no results by the query.
So you would need to fake those to trick out Views and make it display "no items found".
This is more or less what above code does, and I do not recommend this.
However, you are free to use it, if it fits your project better than the official solution.