为什么Mac应用程序永远不会“关闭”?


60

我是Linux / Windows / Mac用户。我喜欢所有系统,而不是Windows *,但是我非常喜欢。

我从今年开始使用Mac,我不明白Linux和Windows之间的区别是:为什么按“ x”按钮时应用程序永远不会关闭,因为这是Linux和Windows的行为方式?我需要按cmd + q或按向上菜单退出。

我的意思是,这仅仅是与所有人不同,还是有这种行为的原因?我看不到任何优势。如果我想关闭,我想关闭。期。

有人知道原因吗?


1
只是X按钮的默认行为是隐藏。我同意这是愚蠢的,但这是“您的Macbook比您知道的多”心态的结果。一些Windows和Linux程序执行相同的操作,但通常X表示关闭。
Falmarri 2010年

1
有时,默认行为会有原因,甚至历史原因也没有道理。我想知道。
有人仍然使用您MS-DOS 2010年

1
从历史上看,我认为它会关闭窗口,但不会退出应用程序。我不确定为什么,但是我怀疑它的根源在于Mac具有虚拟内存和实际应用程序切换的时间,您可以关闭窗口,可能释放一些内存,但不会使打开新内存的速度变慢。
内斯,2010年

25
当应用程序始终只有一个(主)窗口(例如“ 系统偏好设置”)时,将其关闭(“ 文件” >“ 关闭”,“ Command + W”或左上角的每个窗口红色X)将退出该应用程序(“完成”窗口”表示您已经与应用程序“完成”,因为只有一个窗口。当最后一个窗口关闭时,具有多个主窗口的应用程序不会退出。该应用程序保持打开状态,因此您可以使用(例如)File > New…(或File > Open…)打开一个新窗口,而不必退出并重新启动该应用程序。
克里斯·约翰森

1
@Chris yours应该是一个答案,这对我来说最有意义
phunehehe 2010年

Answers:


89

从某种意义上讲,它是一种具有悠久历史的UI约定,其历史可以追溯到1984年。由于Windows和X11都发布了原始Mac GUI的日期,因此有人可能会说Windows以“只是有所不同”而不是Windows的方式进行操作。暗示Mac是奇怪的东西。

早在Macintosh时代,您一次只能运行一个应用程序。没有窗口打开应用程序是完全合理的,因为该应用程序始终在屏幕顶部具有可见的菜单栏。关闭应用程序的所有窗口时,保持应用程序处于打开状态非常有意义,因为您始终可以使用菜单栏来创建新文档或打开现有文档。仅仅因为关闭了窗口而退出该过程在当时没有任何意义,因为没有其他过程可以引起关注。

几年后,80年代后期的Macintosh达到了足够的内存可以一次打开多个应用程序的地步。由于执行此操作的工具必须保留与现有应用程序的向后兼容性,因此,它们自然不会更改基本的UI约定并在没有打开任何窗口的情况下杀死应用程序。结果是在UI中将可视GUI元素(窗口)和抽象运行进程(应用程序)区分开来。

同时,微软一直在开发Windows。到90年代初,Microsoft使Windows 3.X运转良好,并且X11上的Motif受到了微软工作的极大启发。尽管Macintosh是围绕呈现应用程序的用户界面而构建的,但Windows(顾名思义)是基于以下理念构建的:窗口本身应是UI的基本单元,而应用程序的唯一概念是MDI样式的容器窗口。从UI的角度来看,X11还认为应用程序不重要。单个进程甚至可以在连接(非常新的)局域网的多台计算机上的多个显示器上打开窗口。

Windows风格方法的麻烦在于您无法进行某些形式的用户交互,例如仅通过菜单栏打开,并且用户无法真正保证当窗口消失时某个进程实际上已经退出。Macintosh用户可以轻松切换到没有Windows的情况下运行的应用程序以退出或使用它,但是Windows绝对没有提供用户与该过程进行交互的方式。(除了要在任务管理器中注意到它并杀死它。)而且,用户不能选择让一个进程继续运行,以便他们可以重新启动它而无需重新启动它,除了保持一些可见的UI不受进程混乱的影响之外。屏幕上,并且消耗(当时非常有限)资源。在Macintosh上有一个“应用程序”菜单用于切换时,Windows普及了一个“任务栏”,它显示所有顶级窗口,而无需考虑打开它们的过程。对于繁重的多任务处理程序,“任务栏汤”被证明是不可靠的。对于更基本的用户而言,关于什么才是真正的“顶级窗口”的可预测性有时会令人迷惑,因为关于哪个窗口实际显示在栏上没有可学习的规则。

到90年代后期,Microsoft的GUI已成为最常用的GUI。大多数用户拥有Windows PC,而不是Macintosh或UNIX X11工作站。因此,随着Linux的流行,随着时间的推移,许多开发人员都来自使用Windows UI约定而不是UNIX UI约定的背景。结合早期根据Windows UI约定绘制Motif等事物的工作历史,导致现代Linux桌面环境的行为比Windows更像Windows,而不是像twm或Macintosh这样的经典X11。

此时,“经典” Mac OS随Mac OS 9一起运行,而Macintosh变成了Mac OS X形式的具有很大差异的Unix驱动的机器。因此,它继承了NeXT UI Dock的概念。在原始的NeXT机器上,使用了X11,但是具有相当独特的一组小部件和UI约定。其中最有特色的可能是Dock,它是程序启动器和任务切换器的组合。(OS-X中已知的“多列”打开文件对话框也来自NeXT,以及其他一些可见的东西。但是,OS-X过渡中最重要的变化都是不可见的。)Dock与Macintosh的“应用程序作为基本UI元素”的概念配合得很好。所以,用户可以通过停靠图标上的标记看到打开的应用程序,然后切换到该应用程序或通过单击该应用程序将其启动。由于现代OS-X现在比传统Mac OS更好地支持多任务处理,因此突然感觉用户可能希望在后台运行各种操作,例如某些在后台运行的视频转换软件,屏幕录像机,VOIP软件,Internet广播,Web服务器,响应语音命令而说话的东西等。这些东西都不需要打开可见的窗口,以仍然具有合理的用户体验,并且菜单栏仍与屏幕顶部的窗口分开,您可以在停靠图标上直接放置一个菜单,以便用户始终可以与没有打开的UI的程序进行交互。所以,放弃现有的使应用程序保持打开状态(更像Windows)的惯例,被大多数Mac用户视为朝错误方向迈出的可怕一步。它使几种交互方式成为不可能,没有真正的好处。

显然,某些用户更喜欢Windows约定,但两者都不“正确”。但是,在没有任何充分理由的情况下从诸如此类的有用信息中迁移出来将毫无意义。希望本次历史回顾之旅为您提供一些有用的背景信息。


1
Nit:NeXTSTEP没有使用X11。它有自己的基于Display PostScript的窗口(尽管它基于PDF而不是PS,但它最终构成了OS X的Quartz 2D的基础)。
gsnedders '16

除了他们都模仿施乐奥拓。乔布斯和盖茨都这样说。X11 / Motif基本上都是基于它们。
Evi1M4chine

1
苹果为开发人员提供了在关闭最后一个窗口后退出应用程序的选择。由开发人员做出选择。显然,许多开发人员都喜欢这样创建他们的应用程序。
SpaceDog

20

该窗口不是 MacOS中的应用程序,在MacOS中,Windows连接到该应用程序。这就是为什么关闭窗口时应用程序不退出的原因。

在Windows上,窗口应用程序,这就是为什么当您按下退出按钮时,应用程序应该退出的原因。

在Linux上,开发人员可以决定要使用哪种体系结构,两种方式都可以...


4
在Windows上,这两种方法也是可能的...
Chris Down

1
而且,如果您使用Cocoa来构建应用程序,则可以选择在关闭最后一个窗口时是否退出应用程序。
Blacklight Shining 2012年

此外,关闭系统窗口时,系统偏好设置也会退出。(可能还有其他捆绑的应用程序可以执行此操作,但这是我目前唯一能想到的应用程序。)
Blacklight

@ChrisDown:在Windows中没有窗口的情况下,如何与应用程序进行交互?系统泊坞窗?
Evi1M4chine

15

这是特定于应用程序的。例如,当您单击红色按钮时,系统首选项应用程序确实退出。但是,大多数程序仅在尝试“关闭”窗口时关闭窗口(及其中的文档)。我想这背后的想法是让您想再次使用该应用程序时更快。

如果我想关闭,我想关闭。期。

我同意,所以我使用键盘快捷键,Cmd+ w用于关闭窗口,Cmd+ q用于真正退出。大多数应用程序都已实现。一种替代方法是右键单击应用程序图标,然后选择“退出”,这要慢得多。


8

是的,这很烦人。

同时,此应用程序应该可以帮助:http :
//www.carsten-mielke.com/redquits.html

根据说明:

您是否曾经尝试过使用红色按钮关闭应用程序,并且想知道为什么它仍处于打开状态?RedQuits改变了这一点。现在,如果您单击红色按钮,则所有程序都退出并关闭所有打开的窗口。


有趣的解决方案。
有人仍在使用您MS-DOS

1
使用此替代方法的人们可能应该切换到Windows或学习OS X的处事哲学。我不想在这里发动一场火焰大战,但这通常适用于任何人想要表现出与另一产品类似的产品的情况。这个工具存在很好。可能有几个人在使用它。
拉斐尔·布加杰夫斯基

2
这是唯一正确的答案,谢谢@Tamas!规则是计算机和软件应该灵活并且适合我的需求和习惯-而不是相反!
Marecky 2015年

3

其原因是由于什么是窗口。在Microsoft Windows中,每个应用程序都有其自己的窗口,在Mac OSX和Mac OS的早期版本中,每个文件文档都有其自己的窗口。当您“关闭Safari”时,您不是在关闭[退出]应用程序Safari,而是仅关闭文件(http://unix.stackexchange.com)。同样,如果关闭Pages窗口(Apple的文字处理应用程序),则正在关闭您正在处理的文档,但应用程序Pages仍在运行。如果要退出该应用程序,请使用CMD + Q。一些非文件创建应用程序遵循此模式,因为它们可以打开多个窗口,也可以完全不打开,并且仍可以运行(iTunes)。

替代步骤:按CMD + Q退出应用程序,而不是关闭窗口。[CMD + W]再次单击扩展坞上的图标(在触控板/魔术鼠标上按CTRL +单击或鼠标右键或两指点击),然后选择那样退出

可悲的是,这只是取消 Windows知识并认为Mac:D所要做的一件事


几个月后我明白了。:)实际上,两种方法都有意义。
有人仍在使用您MS-DOS

0

一开始,我认为这也是个坏主意,但实际上-现在,我认为这很棒。实际上,我不喜欢“ X”终止应用程序的愚蠢行为。需要特别注意的是,实际上对于基于文档的应用程序(例如Photoshop或docs Editors),这是一种更好的方法-现在,我总是忘记记住“ X”会终止该应用程序(例如Photoshop),然后我需要花更多的钱。初始化时间。该应用程序只是在那里等待您的新文档,为什么我应该终止它?好的-这是一个内存消耗,但是如今RAM太便宜了,根本就没有关系。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.