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

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

我是 Linux/Windows/Mac 用户。我喜欢所有系统,*nixes 多于 Windows,但我仍然喜欢所有系统。

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

我的意思是,这只是为了与他们所有人不同,还是有这种行为的原因?我看不出有什么优点。如果我想关闭,我想关闭。时期。

有人知道其中的原因吗?

答案1

从某种意义上说,这是一种 UI 约定,其历史可以追溯到 1984 年。由于 Windows 和 X11 都晚于最初的 Mac GUI,人们可能会说 Windows 采用 Windows 的方式“只是为了与众不同”,而不是暗示 Mac 是个奇怪的东西。

早在 Macintosh 的早期,您一次只能运行一个应用程序。对于没有窗口的应用程序来说,打开它是完全合理的,因为应用程序在屏幕顶部始终有一个可见的菜单栏。当您关闭应用程序的所有窗口时,保持应用程序打开是有意义的,因为您始终可以使用菜单栏创建新文档或打开现有文档。仅仅因为窗口关闭而退出进程在当时没有任何意义,因为没有其他进程可以产生焦点。

几年后,80 年代末的 Macintosh 已经发展到有足够的内存可以同时打开多个应用程序的程度。由于执行此操作的工具必须保留与现有应用程序的向后兼容性,因此它们自然不会更改基本的 UI 约定并在没有打开任何窗口的情况下杀死应用程序。结果是 UI 中可视化 GUI 元素(窗口)和抽象运行进程(应用程序)之间有了明显的区别。

与此同时,微软一直在开发Windows。到了 90 年代初,微软的 Windows 3.X 运行良好,X11 上的 Motif 很大程度上受到了微软工作的启发。 Macintosh 是围绕呈现应用程序 UI 构建的,而 Windows(顾名思义)是围绕这样的理念构建的:窗口本身应该是 UI 的基本单元,应用程序的唯一概念是MDI 风格的容器窗口。从 UI 的角度来看,X11 还认为应用程序基本上不重要。单个进程甚至可以在通过(非常新颖的)局域网连接到多台计算机的多个显示器上打开窗口。

Windows 风格方法的问题在于,您无法进行某些形式的用户交互,例如仅使用菜单栏打开,并且用户无法真正保证窗口消失时进程是否真的退出。Macintosh 用户可以轻松切换到正在运行的无窗口应用程序以退出或使用它,但 Windows 根本没有为用户提供与此类进程交互的方法。(除了在任务管理器中注意到它并终止它。)此外,用户无法选择让进程继续运行,以便他们可以在不重新启动它的情况下返回它,除非让一些可见的 UI 免受进程的干扰,从而弄乱屏幕并消耗(当时非常有限的)资源。虽然 Macintosh 有一个用于切换的“应用程序”菜单,但 Windows 流行使用“任务栏”,它显示所有顶级窗口,而不考虑打开它们的进程。对于重度多任务处理者来说,“任务栏汤”被证明是笨拙的。对于更基础的用户来说,对于什么才是“顶级窗口”,其不可预测性有时会令人困惑,因为没有可学习的规则来说明哪些窗口实际上会显示在栏上。

到了 90 年代末,微软的 GUI 是最常用的。大多数用户拥有 Windows PC,而不是 Macintosh 或 UNIX X11 工作站。因此,随着 Linux 随着时间的推移越来越受欢迎,许多开发人员都具有使用 Windows UI 约定而不是 UNIX UI 约定的背景。这与 Motif 等早期工作的历史相结合,借鉴了 Windows UI 约定,导致现代 Linux 桌面环境的行为更像 Windows,而不是像 twm 或 Macintosh 等经典 X11 环境。

至此,“经典”Mac OS 已经在 Mac OS 9 中走完了自己的道路,Macintosh 成为了一台 Unix 驱动的机器,与 Mac OS X 的形式有很大不同。因此,它继承了 Dock 的 NeXT UI 概念。在最初的 NeXT 机器上,使用了 X11,但具有一组相当独特的小部件和 UI 约定。其中最有特色的可能是 Dock,它是一种程序启动器和任务切换器的组合。 (OS-X 中众所周知的“多列”打开文件对话框也来自 NeXT,以及其他一些可见的东西。不过,OS-X 过渡中最显着的变化都是不可见的变化。)与 Macintosh 的“应用程序作为基本 UI 元素”的概念很好地配合。因此,用户可以看到应用程序已通过扩展坞图标上的标记打开,并通过单击它切换到或启动它。由于现代 OS-X 现在对多任务处理的支持比经典 Mac OS 好得多,因此用户可能希望在后台运行各种东西,例如某些在后台运行的视频转换软件,这一点突然变得有意义了。 、屏幕录像机、VOIP 软件、网络收音机、网络服务器、响应口头命令的东西等等。这些东西都不一定需要打开可见的窗口才能仍然具有合理的用户体验,并且菜单栏仍然与屏幕顶部的窗口分开,并且您可以直接在扩展坞图标上有一个菜单,因此用户始终可以与没有打开 UI 的程序进行交互。因此,放弃保持应用程序打开的现有惯例,只是为了更像 Windows,会被大多数 Mac 用户视为朝着错误方向迈出的可怕一步。它使得多种交互模式变得不可能,而且没有任何实际好处。

显然,一些用户更喜欢 Windows 约定,但两者都不是“可证明正确的”。但是,如果没有任何充分的理由,就放弃这样有用的东西是没有意义的。希望这段历史之旅能够为您提供一些有用的背景信息。

答案2

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

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

在 Linux 上,开发人员决定他们喜欢使用什么架构,两种方式都是可能的......

答案3

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

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

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

答案4

造成这种情况的原因是由于什么是窗口。在 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

相关内容