Закрытие приложений Mac OS X после закрытия последнего окна

53293
wfaulk

Я знаю, что это просто любимая мозоль, но я ненавижу, что Preview.app Mac OS X остается открытым, когда у него нет открытых окон. Есть ли способ закрыть его, когда закрыто его последнее окно?

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

Я понимаю, что это не выходит за рамки интерфейса ОС. То есть я признаю, что это не ошибка, которая будет исправлена. Мне интересно, есть ли способ автоматически закрывать выбранные приложения с графическим интерфейсом, у которых нет открытых окон.

41

6 ответов на вопрос

23
Wolf

Короче говоря: нет.

- Ответ останавливается здесь. Все последующее - просто моя попытка объяснить почему.

Что вы испытываете, так это философия Mac о том, как должны вести себя приложения. Те, кто будут закрыты после последнего окна пропадает не ведут к Руководству интерфейса Mac (хотя есть много там). // Редактировать: это не совсем правильно, см. Сообщения ниже.

Так было с самой первой системы Mac (в 1984 году). Я думаю, это останется с нами еще на 25 лет. Возможно, разработчики приложений позволят нам установить это в настройках.

До тех пор это помогает привыкнуть к Command-Q (клавиша Apple и q), чтобы закрыть каждое приложение - и Command-W только для активного окна.

Мое личное мнение как комментарий: Работаю с обеими платформами каждый день: я к этому привык. Не имеет большого значения, и, как всегда, в этом есть две стороны. Во время работы приложения каждый последующий запуск выполняется очень быстро. Те приложения, которые я использую время от времени, могут быть закрыты сразу после их использования. Я привык к Apple-Q / Apple-W на Mac гораздо быстрее, чем Alt-F4 / Strg-F4 на Windowsers. Wolf 14 лет назад 1
Можно также нажать Q, используя Command-Tab для переключения приложений (при этом удерживая Command), чтобы выйти из приложения, которое в данный момент выделено в этом переключателе приложений. Arjan 14 лет назад 25
+1 за комментарий Арджана. Это удивительный способ закрыть огромное количество приложений одновременно. Вы делаете это всякий раз, когда вам нужно освободить память. Dan Rosenstark 14 лет назад 0
На самом деле, использование Application Switcher - единственный случай, когда меня беспокоят открытые приложения. Слишком плохое скрытие приложений не удерживает их от переключателя приложений. Arjan 14 лет назад 0
То, что действительно, действительно раздражало меня, было то, что свернутые приложения обнаружились в переключателе приложений, но не будут восстановлены, выбирая их. Это я нашел очень противоречивым. Совсем недавно - буквально через годы использования - я столкнулся с нажатием ALT, в то время как переключение на (свернутое) приложение восстановит его. Hooooray !!! Wolf 14 лет назад 2
@Wolf: у вас смешаны описания: _windows_ свернуты, _applications_ скрыты Steve Folly 14 лет назад 0
Честно говоря, меня не интересует, является ли симптом нормальным. Меня интересует, как избавиться от симптома. wfaulk 14 лет назад 13
@Steve: Абсолютно правильно. Спасибо за указание на это. К сожалению, я не могу отредактировать / исправить свой пост. Wolf 14 лет назад 0
Принятый ответ показывает, что ваш ответ неверен. wfaulk 11 лет назад 0
21
msaied

Попробуйте RedQuits:

RedQuits поможет вам, если вы когда-нибудь пытались закрыть приложение с помощью красной кнопки и задавались вопросом, почему оно все еще открыто. С RedQuits все программы теперь закрываются, когда для этой программы остается только одно окно. Если вы хотите выйти и закрыть все открытые окна программы, просто снимите флажок «Выход только тогда, когда для этого приложения осталось 1 окно». в настройках.

Что забавно, так это то, что сам RedQuits не уходит, когда вы нажимаете красную кнопку, говорится в инструкции. Это просто, что приятно, но нет белого списка. Michael Ozeryansky 11 лет назад 3
RedQuits закрывает приложение, если вы нажмете красную кнопку выхода, но не при закрытии последнего окна с помощью Cmd + W. Sampo 7 лет назад 0
3
dotHTM

Я написал приложение AppleScript, чтобы сделать это для вас.

Короче говоря, он проверяет, какие приложения открыты, дает вам возможность исключить приложения из белого списка из автоматического выхода, а затем каждые 60 секунд завершает работу всех приложений (что может, из-за ограничений).

Чтобы изменить белый список во время его работы, щелкните значок в доке, чтобы снова появилось диалоговое окно выбора.

Чтобы выйти, щелкните правой кнопкой мыши значок Dock и выберите «Выход»

AppleScript источник и приложение: http://files.me.com/kioarthurdane/6kjl9k

Похоже, хорошая идея, за исключением того, что она не работает. Мне пришлось изменить «имя» на «отображаемое имя» в refreshWindowedProcess (), чтобы он не спрашивал «где находится это приложение», но даже тогда, похоже, оно никогда не завершает работу. wfaulk 14 лет назад 0
Какую версию OS X вы используете? Я написал свой сценарий под Snow Leopard, не уверен, что в AppleScript произошли серьезные изменения. dotHTM 14 лет назад 0
Неважно, OmniGraffle Pro только что сделал это со мной. Очень забавно, что те случаи, когда имя в Finder не является настоящим именем файла ... Я посмотрю, смогу ли я написать исправление для этого, используя вместо этого идентификаторы пакета. dotHTM 14 лет назад 0
Обновлено с использованием идентификаторов пакета вместо имени приложения (которое может отличаться от имени приложения). В источнике есть комментарий о двух закомментированных строках, в которых будет представлен список окон в каждом идентификаторе пакета. Я заметил, что многие приложения сообщают о том, что хотя бы одно окно открыто, хотя видимое окно не открыто. NetNewsWire - одно из таких приложений, имеющих длинный список окон даже после того, как главное окно «закрыто». Hit List - еще одно приложение, которое сохраняет свое единственное окно всегда открытым. dotHTM 14 лет назад 0
Подсчет Windows = 0 кажется наиболее очевидным способом определения вашего состояния для выхода, но, похоже, это не подходит для всех приложений. Придумай свои условия, чтобы добавить в мой код. Поскольку не все приложения имеют словарь AS, будет сложно проверить эти приложения на наличие каких-либо других условий (не говоря уже о том, что для каждого отдельного правила требуется немало времени). Я более склонен согласиться с другими ответами, приведенными в статье «Это часть культуры Mac: иметь приложение, работающее без монитора, все еще работающее». Если оно ничего не делает, оно не будет занимать много ЦП или физической ОЗУ. dotHTM 14 лет назад 0
3
user495470

Функция автоматического завершения, представленная в 10.7, частично предназначена для некоторых приложений.

Если вы откроете «Предварительный просмотр», откроете хотя бы одно окно, закроете все окна и переключитесь на другое приложение, оно будет скрыто от переключателя Dock и приложения. Если вы посмотрите на Activity Monitor, процесс все еще работает и использует память, но могут быть некоторые изменения в управлении процессом.

В Руководстве по программированию для Mac App сказано, что процессы на самом деле завершены, поэтому я могу что-то упустить.

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

[...]

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

Предварительный просмотр, конечно, автоматически не исчезает для меня в этих условиях на 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):

-(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSapplication*)sender { return YES; } 
Это вопрос о том, как пользователи могут сделать это с существующими приложениями, а не о том, как программист может заставить свою программу это делать. Спасибо за ваши усилия, хотя. wfaulk 7 лет назад 0