Ма c приложение исчезает, когда окно закрывается, затем выбирается другое приложение - PullRequest
1 голос
/ 02 апреля 2020

Я создал новый проект macOS в Xcode 11.4, где язык - Swift, а пользовательский интерфейс - SwiftUI. Без внесения каких-либо изменений в код проекта, приложение исчезнет из дока, выполнив следующие действия:

  1. запустите приложение Ma c, запустив проект Xcode
  2. закройте главное окно приложения Ma c
  3. выберите другое работающее приложение, такое как Safari
  4. оригинальное приложение Ma c исчезнет из дока, и у него не будет доступа к нему

Такое поведение не происходит, если открыто окно приложения Ma c. Я могу выбрать другие запущенные приложения, а затем go без проблем вернуться к исходному приложению Ma c.

1 Ответ

2 голосов
/ 02 апреля 2020

Это поведение известно как Автомат c Завершение . Я считаю это ошибкой, но Apple считает, что это особенность.

Возможно, ваше приложение не завершило работу. Может показаться, что ушел. «Запуск» его снова заставит его снова появиться в доке. Также возможно, что некоторые приложения, которые выглядят так, как будто они все еще работают, на самом деле были закрыты системой. Теоретически, если вы попытаетесь переключиться на них, они будут запущены и им будет сказано восстановить их прежнее состояние, чтобы сохранить иллюзию, что они работали все время. На практике приложения (даже Apple) редко должным образом восстанавливают вещи так, как они были.

Список процессов в Activity Monitor является истинным отражением того, что на самом деле работает, а что нет. Посмотрите, чтобы определить, действительно ли ваше приложение было прервано.

Предполагается, что разработчик должен подписаться на Automati c Прекращение, потому что он требует явного кодирования восстановления состояния. Однако в шаблонах проекта / назначения приложения Xcode эта функция включена по умолчанию. Вы можете удалить ключ NSSupportsAutomaticTermination из своего Info.plist, чтобы отключить его.

Аналогичным образом, вы, вероятно, захотите отключить и внезапное завершение, если вы не готовы его поддержать. Вы удалите ключ NSSupportsSuddenTermination.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...