Закриття програм Mac OS X після закриття останнього вікна


45

Я знаю, що це просто домашня тварина, але я ненавиджу, що Preview.app Mac OS X залишається відкритим, коли у нього немає відкритих вікон. Чи є спосіб закрити його, коли його останнє вікно закрите?

Оскільки я не бачу жодного варіанту в Preview, щоб зробити це, я думаю, що відповідь може бути застосовна і до інших програм, які мають подібні ... ідіосинкразії.

Я усвідомлюю, що це не знаходиться поза вказівками щодо інтерфейсу ОС. Тобто я визнаю, що це не помилка, яку виправлять. Мені цікаво, чи є спосіб автоматично закрити вибрані програми GUI, у яких немає відкритих вікон.

Відповіді:


22

Спробуйте RedQuits:

RedQuits є для того, щоб допомогти, якщо ви коли-небудь намагалися закрити програму червоною кнопкою і запитали, чому вона все ще відкрита. З RedQuits усі програми зараз закривають, коли для цієї програми залишилося лише одне вікно. Якщо ви хочете закрити і закрити всі відкриті вікна програми, зніміть прапорець "Закрити лише тоді, коли для цього додатка залишилось 1 вікно". в уподобаннях.


3
Що смішного, це те, що RedQuits сам не вимикається при натисканні червоної кнопки, про це йдеться в інструкціях. Це просто, що приємно, але білого списку немає.
Михайло Озерянський

RedQuits закриває програму, якщо натиснути червону кнопку виходу, але не під час закриття останнього вікна за допомогою Cmd + W.
Сампо

23

Коротше кажучи: Ні.

- Відповідь зупиняється тут. Все, що випливає - це лише моя спроба пояснити, чому.

Те, що ви переживаєте, - це філософія Mac про те, як повинні поводитися програми. Ті , хто будуть закриті після останнього вікна пропадає не ведуть до Керівництву інтерфейсу Mac (хоча є багато там). // Редагувати: Це не зовсім правильно, див. Публікації нижче.

Так було з першої Mac-системи (у 1984 році). Я думаю, він залишиться з нами ще 25 років. Можливо, розробники додатків дозволять нам встановити це в налаштуваннях.

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


1
Моя особиста думка як коментар: щодня працюю з обома платформами: я звик до цього. Це зовсім не має великої різниці і - як завжди - є дві сторони. Поки додаток працює, кожен наступний старт є надзвичайно швидким. Ті програми, які я використовую раз у раз, так само можуть бути закриті відразу після їх використання. Я звик до Apple-Q / Apple-W на Macs набагато швидше, ніж Alt-F4 / Strg-F4 на Windows.
Вовк

28
Можна також натискати Q, використовуючи Command-Tab для перемикання програм (таким чином, утримуючи Command), щоб вийти з програми, яка на даний момент виділена в цьому комутаторі програм.
Ар'ян

+1 за коментар Аряна. Це дивовижний спосіб одразу закрити величезну кількість додатків. Ви робите це, коли вам потрібно звільнити деяку пам’ять.
Дан Розенстарк

2
Що насправді, насправді мене дратувало те, що мінімізовані програми з’явились у програмі комутатора програм, але їх не було відновлено при виборі. Це я виявив дуже непослідовним. Зовсім недавно - після буквально багато років використання - я наткнувся на натискання ALT, коли перехід на (мінімізований) додаток відновить його. Хуоорай !!!
Вовк

15
Якщо бути жорстоко чесним, мене не все цікавить, чи симптом є нормальним. Мене цікавить, як позбутися від симптому.
wfaulk

3

Я написав програму AppleScript, щоб зробити це за вас.

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

Щоб змінити білий список під час його запуску, натисніть на піктограму в доці, щоб діалогове вікно вибору з’явилося знову.

Щоб вийти, клацніть правою кнопкою миші піктограму Док і виберіть "Вийти"

Джерело та додаток AppleScript: http://files.me.com/kioarthurdane/6kjl9k


Здається, гарна ідея, за винятком того, що вона не працює. Мені довелося змінити "ім'я" на "відображене ім'я" в refreshWindowedProcess (), щоб не запитувати "де це додаток", але навіть тоді воно, здається, ніколи нічого не закриває.
wfaulk

Яку версію ОС X ви використовуєте? Я написав свій сценарій під Snow Leopard, не впевнений, чи відбулися серйозні зміни в AppleScript.
dotHTM

Не зважаючи, OmniGraffle Pro просто зробив це для мене. Дуже смішно, що ці випадки полягали в тому, що ім'я в Finder - це не власне ім'я файлу ... Я побачу, чи можу я замість цього записати виправлення, використовуючи ідентифікатори пакету.
dotHTM

Оновлено за допомогою ідентифікаторів пакету замість назви програми (яка може відрізнятися від імені файлу програми). У джерелі є примітка про два коментованих рядки, які повідомляють про список вікон у кожному ідентифікаторі пакету. Я зауважую, що багато програм повідомляють, що принаймні одне вікно є відкритим, незважаючи на те, що жодне вікно не відкрите. NetNewsWire - це одна така програма, яка має довгий список вікон навіть після того, як головне вікно буде «закрито». Список хітів - це ще одна програма, яка зберігає, що одне вікно завжди відкрите.
dotHTM

Кількість Windows = 0 видається найбільш очевидним способом виявити ваш стан для виходу, але це, здається, не справляється із усіма програмами. Придумайте власні умови, щоб додати до мого коду. Оскільки не всі програми мають словник AS, важко буде перевірити ці додатки на будь-які інші умови (не кажучи вже про витрату часу, щоб скласти окреме правило для кожного). Я більше схильний погодитись з іншими відповідями, наданими з "Це частина Mac Culture, щоб безголовий додаток все ще працював". Якщо тільки щось не робити, це не забирає багато процесора або фізичної оперативної пам'яті.
dotHTM

3

Функція автоматичного припинення, введена в 10.7, частково адреси, що для деяких програм.

Якщо ви відкриєте попередній перегляд, відкрийте принаймні одне вікно в ньому, закрийте всі вікна та перейдіть на іншу програму, попередній перегляд приховано від перемикача доків та програм. Якщо ви подивитеся на "Монітор активності", процес все ще працює і використовує пам'ять, але в управлінні процесом можуть бути деякі зміни.

У посібнику з програмування Mac йдеться про те, що процеси насправді припиняються, тому, можливо, щось не вистачає.

  • Автоматичне припинення виключає потребу користувачів вийти з програми. Натомість система керує завершенням програми прозоро за кадром, закриваючи додатки, які не використовуються для повернення необхідних ресурсів, таких як пам'ять.

[...]

Автоматичне припинення передає завдання управління процесами від користувача до системи, яка краще обладнана для виконання завдання. Користувачам не потрібно керувати процесами вручну. Все, що їм дійсно потрібно, - це запускати програми та мати такі програми, коли вони потребують. Автоматичне припинення робить це можливим, гарантуючи, що на продуктивність системи не впливає негативно.


1
Попередній перегляд для мене, безумовно, автоматично не зникає за цих умов 10.7.4.
wfaulk

Я пропустив ваш коментар раніше, але це робить для мене 10.8.2. Ви відкрили принаймні одне вікно (наприклад, відкрити та закрити вікно налаштувань) перед тим, як приховати попередній перегляд?
Лрі

2

Інший безкоштовний невеликий і простий додаток, Quitter , відображає піктограму X на панелі треї, яка діє подібно до кнопки закриття під Windows.


4
Ласкаво просимо, і дякую за публікацію відповіді! Ви повинні розкрити свою приналежність до пов'язаного продукту / блогу. Зазвичай це не проблема, коли все тримається над дошкою :)
JoshP

0

Замініть наступний метод у NSApplicationDelegate(який зазвичай повертається NO):

-(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSapplication*)sender
{
return YES;
}

Це питання про те, як користувачі можуть зробити це ставленням до існуючих додатків, а не про те, як програміст може змусити свою програму це зробити. Дякую за ваші зусилля.
wfaulk
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.