Эквивалент NSView — userInteractionEnabled

#macos #cocoa #appkit

#macos #какао #appkit

Вопрос:

Существует ли надежный / официальный способ полностью отключить взаимодействие пользователя с представлением? Подобные вопросы SO предполагают только перехват событий мыши, но я ищу полное решение, которое отключит все взаимодействия в представлении и его потомки, в том числе:

  • события мыши
  • трекпад
  • фокус клавиатуры / события
  • клавиши ускорителя
  • голосовой ввод
  • методы управления разумом
  • любой другой официальный способ для пользователя создавать события управления из пользовательского интерфейса

Представление (и его потомки) также должны немедленно потерять фокус клавиатуры / мыши, как только взаимодействие отключено.

Это должно быть похоже на то, что transitionFromViewController:toViewController:options:completionHandler: выполняется без NSViewControllerTransitionAllowUserInteraction флага, но я не могу найти способ сделать это вне анимации.

Обновление: другой способ описать то, что я ищу: представление должно действовать полностью так, как будто оно скрыто, но все равно отображается на экране.

Комментарии:

1. Отключите элементы управления, если вы хотите отключить все взаимодействия.