Предотвратить выход macOS Messages.app, когда я закрываю его окно?

Я использую очень специфический рабочий процесс с приложением «Сообщения» на Mac:

  1. Прочитай мои сообщения
  2. Закройте окно сообщений с помощью CMD-W
  3. Приложение Сообщения все еще работает
  4. Когда приходит новое сообщение, CMD- Tabв все еще открытое приложение Сообщения
  5. Нажмите CMD- 0, чтобы снова открыть окно сообщений

После закрытия окна «Сообщения» приложение всегда оставалось открытым и работало в Dock и переключателе приложений.

Окно сообщений закрыто, но приложение все еще работает

В Mac OS 10.14 Mojave я аналогичным образом закрываю окно «Сообщения». После закрытия окна «Сообщения» приложение «Сообщения» по-прежнему находится на переднем плане, работает и отображает строку меню.

Однако, когда я нажимаю на какое-либо другое приложение, приложение «Сообщения» сразу же закрывается .

Точка исчезает с дока, и (это ключевая проблема) я больше не могу CMD- Tabв приложение «Сообщения» в переключателе приложений.

Приложение закрыто;  нет док-точки

Я вынужден щелкнуть значок док-станции мышью или иным образом повторно открыть приложение, что неудобно и раздражает.

После того, как приложение выходит, помимо того, что оно «Выход», оно, кажется, ведет себя более или менее точно так же, как раньше, до Мохаве. Процесс Сообщения все еще запущен и виден в Мониторе активности. Уведомления продолжают приходить. Значок дока получает значок.

Монитор активности

Как сделать так, чтобы сообщения не закрывались, когда я закрываю их окно?

rdar://46142132 - Mojave Messages.app не должен закрываться, когда я закрываю его окно

Инженеры определили, что ваш отчет об ошибке (46142132) является дубликатом 42085189 и будет закрыт.

Ссылки по теме:

В данный момент я не стою перед машиной Мохаве, чтобы проверить, дает ли ваш рабочий процесс те же результаты на моем конце, но тем временем на шаге 2 вашего рабочего процесса есть причина, по которой сворачивание окна вместо его закрытия не будет хороший вариант? Однако я смогу протестировать Мохаве в течение следующего часа и дам вам знать, что произойдет со мной.
Я так понимаю разница только косметическая? Я по-прежнему получаю уведомления о новых сообщениях независимо от того, говорит ли док-станция, что она открыта или закрыта.
@Wowfunhappy В модели использования, управляемой мышью или уведомлениями, это может быть несколько «косметическим», но удаление приложения из меню CMD-Tab является серьезным функциональным изменением.
Хорошо, я проверил это на своем конце, и приложение «Сообщения» продолжает работать для меня, даже когда я закрыл окно «Сообщения» с помощью ярлыка CMD- W. И когда я тестирую весь ваш рабочий процесс, он отлично работает для меня. В качестве теста, как насчет прохождения процесса, чтобы вы закрыли окно «Сообщения» и значок приложения «Сообщения» исчез из переключателя приложений, но все еще был виден в мониторе активности. Подождите несколько минут, а затем отправьте сообщение самому себе с другого вашего устройства (например, с iPhone). Регистрирует ли приложение «Сообщения» на Mac получение сообщения?
@Monomeeth только что добавил еще одну деталь: после CMD-W строка меню по-прежнему принадлежит Сообщениям, и приложение остается открытым, оставаясь в фокусе. Но нажмите на любое другое открытое приложение/окно, и ТОГДА сообщения исчезнут. Это может помочь вам размножаться.
Я на самом деле уже проверил на это. :) Что меня сейчас интересует, так это поведение на вашем конце, когда приложение «Сообщения», кажется, закрывается. Остается ли он по-прежнему в мониторе активности даже через несколько минут и получает ли он сообщения, если вы (или кто-то другой) отправляет вам их, когда он находится в состоянии выхода ?
@Monomeeth Отредактированный пост. Да, процесс продолжается бесконечно. Новые сообщения доставляются, а значок док-станции помечается значком. Закрывается только пользовательское «приложение», серверная часть все еще полностью функциональна.
Итак, единственное поведение, которое действительно отличается, заключается в том, что само приложение не отображается в переключателе приложений, а точка исчезает со значка в доке, но все остальное работает нормально?
О, и простите за очевидный вопрос, но пробовали ли вы перезагрузить свой Mac, чтобы посмотреть, решит ли это проблему?
@Monomeeth Restart не исправляет. Я удивлен, что вы не можете воспроизвести это. Похоже, это новое поведение в Мохаве. Другие потоки в Интернете, а также.
Я также использую этот рабочий процесс, кроме cmd-0. Это автоматическое завершение работы, а также то, как ведет себя Фото, является странным, отличающимся UX для MacOS. Я не знаю, как Apple решает, с какими приложениями это делать, и я думаю, что было довольно неубедительно просто изменить это поведение без уведомления.

Ответы (3)

Насколько я вижу, это просто еще один случай « Автоматического завершения », аналогичный Preview, QuickTime Player и т. Д.

Если вы запустите Терминал (из /Applications/Utilities/) и выполните следующую команду с Messages quit, сообщения должны перестать завершаться, когда окно будет закрыто:

defaults write com.apple.iChat NSDisableAutomaticTermination -bool yes

Затем нажмите enter.

Чтобы отменить это снова:defaults delete com.apple.iChat NSDisableAutomaticTermination

Это работает! Спасибо. У меня не было успеха от подобных ответов, которые предлагали NSSupportsAutomaticTermination. Но NSDisableAutomaticTerminationдля конкретного процесса, похоже, поведение отключается.
@pkamb Вместо того, чтобы быть специфичным для приложения (com.apple.iChat), вы также должны иметь возможность отключить его глобально с помощью той же команды, но используя -gвместо com.apple.iChat.
Это работает, ключевой деталью является то, что сообщения должны быть полностью закрыты до запуска команды. Это должно работать после перезапуска сообщений после.

Это немного странно, так как кажется, что это влияет только на приложение «Сообщения», а приложение «Сообщения», похоже, на самом деле все еще работает в фоновом режиме. Добавьте к этому тот факт, что я вообще не могу его воспроизвести.

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

Вариант 1: сброс и перезапуск док-станции

Одно из средств — сбросить и перезапустить док-станцию. Однако при этом вам нужно будет повторно добавить все значки, отличные от значков по умолчанию, в Dock . (Обычно я нахожу, что это хорошая возможность для людей начать все заново и добавлять вещи только по мере их фактического использования).

Вы можете сбросить и перезапустить док следующим образом:

  • Перейти к поиску
  • Нажмите и удерживайте optionклавишу
  • Теперь перейдите в меню «Перейти».
  • Выберите параметр «Библиотека», чтобы открыть папку «Библиотека пользователя» . Теперь вы можете отпустить ключ option.
  • Перейдите в папку «Настройки» (т.е. в папку «Библиотека»)
  • Найдите и переместите файл com.apple.dock.plist в корзину.
  • Теперь откройте Терминал (обычно он находится в Приложениях > Утилиты).
  • Введите эту командуkillall -KILL Dock
  • Нажиматьenter

Помните, что вам нужно будет повторно добавить некоторые приложения обратно в Dock.

Вариант 2. Сбросить кеш значков

Вы также можете попробовать сбросить кеш значков.

  • Запустите Терминал (обычно находится в папке Приложения > Утилиты)
  • Введите следующие три команды, по одной за раз:

    sudo find /private/var/folders/ \ -name com.apple.dock.iconcache -exec rm {} \;
    sudo find /private/var/folders/ \ -name com.apple.iconservices -exec rm -rf {} \;
    sudo rm -rf /Library/Caches/com.apple.iconservices.store
    

Дайте мне знать, как вы идете.

Помимо проблемы с Dock, это может быть проблема с AppNap или LaunchServices.

Redarmможет работать для iChat, но если вы хотите, чтобы это повлияло на другие приложения, вы можете сделать следующее, просто выполнив эту команду в Терминале:

defaults write -g NSDisableAutomaticTermination -bool TRUE

Я попробовал Redarmответ на macOS Catalina, и он не сработал; закрытие окна по-прежнему полностью закрывает приложение «Сообщения». После того, как я запустил свою команду (выше), она сработала отлично!