Я хочу запрограммировать «режим без отвлечения» для моего приложения Mac. Возможно ли войти в полноэкранный режим и запретить пользователю переключиться на любое другое приложение, фактически заблокировав его в программе (например, за определенное количество времени)?Mac: заблокировать пользователя в приложении
ответ
Вы можете реализовать kiosk mode. Короче говоря, вы можете установить NSApplication.sharedApplication().presentationOptions
. Вы можете смешивать и сопоставлять варианты (в некоторых правилах), но один очевидный набор будет смешивать .HideDock
, .HideMenuBar
и .DisableProcessSwitching
.
Вы можете вручную по размеру и позиционировать окно своего приложения, чтобы покрыть весь экран, или вы можете позвонить enterFullScreenMode(_:withOptions:)
, чтобы просмотреть его в полноэкранном режиме. Для последнего вы можете комбинировать настройку параметров презентации с входом в полноэкранный режим, как описано в техническом примечании режима киоска.
Не помешает ли это использовать Alt-Tab переключается на другие приложения? – pistacchio
Да, это одна из вещей, которые делает '.DisableProcessSwitching'. Прочтите документы и убедитесь, что вы используете все возможные варианты. –
не говорящий по опыту ... но от логики это звучит так, как будто это было бы крайне нахмурило яблоко. откроет так много вредоносных применений. – Dustin
Похоже, вы хотите использовать «Режим киоска»: http://stackoverflow.com/questions/11434497/mac-kiosk-mode-api-prevent-users-from-quitting?rq=1 – Thilo