Закрытие приложений Mac OS X после закрытия последнего окна
53333
wfaulk
Я знаю, что это просто любимая мозоль, но я ненавижу, что Preview.app Mac OS X остается открытым, когда у него нет открытых окон. Есть ли способ закрыть его, когда закрыто его последнее окно?
Поскольку я не вижу никакой возможности в Preview, чтобы это произошло, я полагаю, что ответ может быть применим к другим программам, которые имеют аналогичные ... особенности.
Я понимаю, что это не выходит за рамки интерфейса ОС. То есть я признаю, что это не ошибка, которая будет исправлена. Мне интересно, есть ли способ автоматически закрывать выбранные приложения с графическим интерфейсом, у которых нет открытых окон.
- Ответ останавливается здесь. Все последующее - просто моя попытка объяснить почему.
Что вы испытываете, так это философия Mac о том, как должны вести себя приложения. Те, кто будут закрыты после последнего окна пропадает не ведут к Руководству интерфейса Mac (хотя есть много там). // Редактировать: это не совсем правильно, см. Сообщения ниже.
Так было с самой первой системы Mac (в 1984 году). Я думаю, это останется с нами еще на 25 лет. Возможно, разработчики приложений позволят нам установить это в настройках.
До тех пор это помогает привыкнуть к Command-Q (клавиша Apple и q), чтобы закрыть каждое приложение - и Command-W только для активного окна.
Мое личное мнение как комментарий: Работаю с обеими платформами каждый день: я к этому привык. Не имеет большого значения, и, как всегда, в этом есть две стороны. Во время работы приложения каждый последующий запуск выполняется очень быстро. Те приложения, которые я использую время от времени, могут быть закрыты сразу после их использования. Я привык к Apple-Q / Apple-W на Mac гораздо быстрее, чем Alt-F4 / Strg-F4 на Windowsers.
Wolf 15 лет назад
1
Можно также нажать Q, используя Command-Tab для переключения приложений (при этом удерживая Command), чтобы выйти из приложения, которое в данный момент выделено в этом переключателе приложений.
Arjan 15 лет назад
25
+1 за комментарий Арджана. Это удивительный способ закрыть огромное количество приложений одновременно. Вы делаете это всякий раз, когда вам нужно освободить память.
Dan Rosenstark 15 лет назад
0
На самом деле, использование Application Switcher - единственный случай, когда меня беспокоят открытые приложения. Слишком плохое скрытие приложений не удерживает их от переключателя приложений.
Arjan 15 лет назад
0
То, что действительно, действительно раздражало меня, было то, что свернутые приложения обнаружились в переключателе приложений, но не будут восстановлены, выбирая их. Это я нашел очень противоречивым. Совсем недавно - буквально через годы использования - я столкнулся с нажатием ALT, в то время как переключение на (свернутое) приложение восстановит его. Hooooray !!!
Wolf 15 лет назад
2
@Wolf: у вас смешаны описания: _windows_ свернуты, _applications_ скрыты
Steve Folly 15 лет назад
0
Честно говоря, меня не интересует, является ли симптом нормальным. Меня интересует, как избавиться от симптома.
wfaulk 15 лет назад
13
@Steve: Абсолютно правильно. Спасибо за указание на это. К сожалению, я не могу отредактировать / исправить свой пост.
Wolf 15 лет назад
0
Принятый ответ показывает, что ваш ответ неверен.
wfaulk 11 лет назад
0
RedQuits поможет вам, если вы когда-нибудь пытались закрыть приложение с помощью красной кнопки и задавались вопросом, почему оно все еще открыто. С RedQuits все программы теперь закрываются, когда для этой программы остается только одно окно. Если вы хотите выйти и закрыть все открытые окна программы, просто снимите флажок «Выход только тогда, когда для этого приложения осталось 1 окно». в настройках.
Что забавно, так это то, что сам RedQuits не уходит, когда вы нажимаете красную кнопку, говорится в инструкции. Это просто, что приятно, но нет белого списка.
Michael Ozeryansky 11 лет назад
3
RedQuits закрывает приложение, если вы нажмете красную кнопку выхода, но не при закрытии последнего окна с помощью Cmd + W.
Sampo 7 лет назад
0
3
dotHTM
Я написал приложение AppleScript, чтобы сделать это для вас.
Короче говоря, он проверяет, какие приложения открыты, дает вам возможность исключить приложения из белого списка из автоматического выхода, а затем каждые 60 секунд завершает работу всех приложений (что может, из-за ограничений).
Чтобы изменить белый список во время его работы, щелкните значок в доке, чтобы снова появилось диалоговое окно выбора.
Чтобы выйти, щелкните правой кнопкой мыши значок Dock и выберите «Выход»
Похоже, хорошая идея, за исключением того, что она не работает. Мне пришлось изменить «имя» на «отображаемое имя» в refreshWindowedProcess (), чтобы он не спрашивал «где находится это приложение», но даже тогда, похоже, оно никогда не завершает работу.
wfaulk 15 лет назад
0
Какую версию OS X вы используете? Я написал свой сценарий под Snow Leopard, не уверен, что в AppleScript произошли серьезные изменения.
dotHTM 15 лет назад
0
Неважно, OmniGraffle Pro только что сделал это со мной. Очень забавно, что те случаи, когда имя в Finder не является настоящим именем файла ... Я посмотрю, смогу ли я написать исправление для этого, используя вместо этого идентификаторы пакета.
dotHTM 15 лет назад
0
Обновлено с использованием идентификаторов пакета вместо имени приложения (которое может отличаться от имени приложения). В источнике есть комментарий о двух закомментированных строках, в которых будет представлен список окон в каждом идентификаторе пакета. Я заметил, что многие приложения сообщают о том, что хотя бы одно окно открыто, хотя видимое окно не открыто. NetNewsWire - одно из таких приложений, имеющих длинный список окон даже после того, как главное окно «закрыто». Hit List - еще одно приложение, которое сохраняет свое единственное окно всегда открытым.
dotHTM 15 лет назад
0
Подсчет Windows = 0 кажется наиболее очевидным способом определения вашего состояния для выхода, но, похоже, это не подходит для всех приложений. Придумай свои условия, чтобы добавить в мой код. Поскольку не все приложения имеют словарь AS, будет сложно проверить эти приложения на наличие каких-либо других условий (не говоря уже о том, что для каждого отдельного правила требуется немало времени). Я более склонен согласиться с другими ответами, приведенными в статье «Это часть культуры Mac: иметь приложение, работающее без монитора, все еще работающее». Если оно ничего не делает, оно не будет занимать много ЦП или физической ОЗУ.
dotHTM 15 лет назад
0
3
user495470
Функция автоматического завершения, представленная в 10.7, частично предназначена для некоторых приложений.
Если вы откроете «Предварительный просмотр», откроете хотя бы одно окно, закроете все окна и переключитесь на другое приложение, оно будет скрыто от переключателя Dock и приложения. Если вы посмотрите на Activity Monitor, процесс все еще работает и использует память, но могут быть некоторые изменения в управлении процессом.
Автоматическое завершение устраняет необходимость для пользователей выходить из приложения. Вместо этого система прозрачно управляет завершением приложений за кулисами, завершая приложения, которые не используются, чтобы вернуть необходимые ресурсы, такие как память.
[...]
Автоматическое завершение переносит работу по управлению процессами от пользователя к системе, которая лучше приспособлена для выполнения этой работы. В любом случае пользователям не нужно вручную управлять процессами. Все, что им действительно нужно, это запускать приложения и иметь эти приложения доступными, когда они им нужны. Автоматическое завершение делает это возможным, гарантируя, что производительность системы не пострадает.
Предварительный просмотр, конечно, автоматически не исчезает для меня в этих условиях на 10.7.4.
wfaulk 11 лет назад
0
Я пропустил ваш комментарий ранее, но он делает для меня в 10.8.2. Открывали ли вы хотя бы одно окно (например, открываете и закрываете окно настроек) перед тем, как скрыть предпросмотр?
user495470 11 лет назад
0
2
Andreas
Another free small and simple app, Quitter, displays an X icon in the traybar which acts just like the closing button under Windows.
Добро пожаловать, и спасибо за размещение ответа! Вы должны раскрыть свою принадлежность к связанному продукту / блогу. Обычно это не проблема, когда все находится над доской :)
JoshP 11 лет назад
4
0
Pierre Dufresne
Override the following method in NSApplicationDelegate (which normally returns NO):
Это вопрос о том, как пользователи могут сделать это с существующими приложениями, а не о том, как программист может заставить свою программу это делать. Спасибо за ваши усилия, хотя.
wfaulk 8 лет назад
0