开启复印机?
Windows 7中全新的任务栏和Mac OS X的Dock有很多相似之处,而相似性中的很多都没什么建设性,并不会让Windows变得和Mac过于相像。就算在Mac用户中,这种新的任务栏也不是人人都能接受,很多人甚至觉得这种Dock非常难用。
表面上看,这两个功能的相似之处很明显:Dock和任务栏都由很大的图标组成,这些图标可用于启动或切换应用程序。然而更仔细查看会发现,在很长时间内,任何人都不需要担心微软盲目模仿Apple。Windows的UI并没有变成Mac OS X的UI,至少目前还没有。
UI理念
为了清楚了解任务栏和Dock的不同之处,首先我们需要了解Windows和OS X构建时的一些基础规范。本节的大部分信息都只是对很多读者抱有的误区进行纠正,但依然值得一读,因为这些信息是本文其他内容的基础。
OS X和Windows之间最基本的区别在于,一般来说,Mac OS X上的“窗口”代表的是不同文档,而Windows上的“窗口”代表的是不同应用程序。这个概念上的差别是这两个操作系统中很多UI功能的诱因,而理解这个不同也是理解这两个操作系统不同之处的关键。
实际上,这种差别最明显的表现在于,在Mac OS X中,关闭某应用程序的最后一个窗口并不会让该程序退出。毕竟每个窗口对应的实际上只是不同文档,而没有打开任何文档,并不意味着该应用程序就必须被关 闭,也许用户的下一步操作正是闯进啊新文档,或打开其他现有文档。然而在Windows中,关闭最后一个窗口通常会完全关闭该应用程序。因为应用程序就是窗口,关闭窗口自然会同时关闭对应的应用程序。
因此,举例来说,在下图中,我们看到的是运行中的TextEdit,以及一个打开的文档窗口。关闭该文档并不会关闭TextEdit,该程序依然在运行,只不过没有打开任何窗口(也就是文档)而已。
TextEdit
TextEdit没有显示任何窗口,但依然在运行。
作为对比,在Windows中,关闭最后一个文档会直接关闭对应的应用程序:
记事本
因为完全没打开窗口,记事本无处运行,因此会被关闭,同时在任务栏上也不再显示对应的图标。
Mac所用的这种“每文档一个窗口”的模式自然会使得所有Mac软件都能同时加载并显示多个文档;要使用多个文档,只需要创建多个窗口即可。
毋庸置疑,多个文档就等同于多个窗口
但在Windows下这种情况就不是很明了了。因为每个窗口都代表一个完整的应用程序,如果用户希望同时打开两个文档,应用程序会怎么办?这个问题 并没有标准答案,这也就意味着不同的Windows应用程序可能有不同的做法。这个问题最简单的例子就是记事本,记事本无法打开多个文档,因此如果需要使 用多个文档,就需要运行多个该程序的副本。
多个记事本文档意味着多个记事本应用程序
虽然对于小型,轻量级的应用程序,例如记事本,这种做法非常合理,但对于大型应用程序,则结果有些差强人意,也正是因此,我们会在Windows程序中看到很多不同的处理方式。
MDI和其他候选方案
让Windows应用程序打开多个文档最常用的方法也许是多文档界面(MDI,Multiple Document Interface)。虽然这种方式目前的应用不像以往那么流行,不过对这种方式,最基本的做法就是由一个主应用程序窗口包含多个子窗口,每个子窗口对应 不同文档。
TextPad可提供最“传统”的MDI视图。
MDI应用程序提供了不同的方式,可供在应用程序的窗口内使用多个子窗口,这就形成了一种类似“双重窗口”的管理系统,应用程序的窗口可以直接在桌 面上进行整理,同时文档的窗口可在应用程序的窗口内部进行整理。但正是后者导致传统的MDI方式最终失败,因为文档窗口被限制在应用程序窗口内部,这样用 户就不能在不同窗口中使用文档,也不能让在不同应用程序中打开的不同文档互相重叠。MDI还使得在窗口见进行切换的工作更难实现,每个MDI应用程序都带 有在不同窗口间切换的菜单项,但这种方式很不方便,尤其是在打开多个文档的情况下。为解决这一问题,最后出现了“标签(Tab)”方式的窗口,但其他 MDI方式的问题,例如文档被限制在窗口内部所导致的“两级管理”模式,在使用标签方式的程序中依然存在。
因此,为了取代这种混合架构,很多Windows应用程序开始放弃MDI模式。第一个这样做的重量级程序是