Pseudo field show/hide setting per node
In hook_ENTITY_TYPE_view which you use to render your pseudo field there already is the $entity available. Which in your case must be a node object. You simply can get any field value from there.

So all you need to do is to add a Drupal default checkbox/boolean field to your content type, from the UI probably, hide it from display, and then output your pseudo field depending on its value, per node.

/**
 * Implements hook_entity_extra_field_info().
 */
function MYMODULE_entity_extra_field_info() {

  $extra['node']['article']['display']['foo_bar'] = [
    'label'       =&gt; t('My pseudo field'),
    'description' =&gt; t('My pseudo field description.'),
    'weight'      =&gt; 0,
    'visible'     =&gt; TRUE,
  ];

  return $extra;
}

/**
 * Implements hook_ENTITY_TYPE_view().
 */
function MYMODULE_node_view(array &amp;$build, \Drupal\Core\Entity\EntityInterface $entity, \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display, $view_mode) {

  if ($entity-&gt;bundle() == 'article') {

    // Get the choice.
    $editors_choice = $entity-&gt;field_editors_choice-&gt;first()-&gt;getValue();
    $editors_choice = isset($editors_choice['value']) ? $editors_choice['value'] : FALSE;

    // And fire accordingly.
    if ($display-&gt;getComponent('foo_bar') &amp;&amp; $editors_choice) {
      $build['foo_bar'] = [
        '#markup' =&gt; 'This is my custom content',
      ];
    }
  }
}