这是一个说明我的问题的例子。
- 我有一个列出 1000 个项目的程序。
- 我选择了 1000 个项目中的 10 个。
- 该程序启用一个按钮,指示一个命令可供我选择。
- 单击按钮,出现一个窗口。
- 我在窗口中进行了一些更改,然后单击“确定”。
- 该命令更改了我的多项选择中的 10 个项目中的 5 个,而这 5 个更改的项目现在反映了我的列表中的修改状态。
我的问题是:
在单击“确定”之前,如何向用户指示该命令会影响多项选择的子集?
任何人都可以举出能够很好地处理这种情况的现有产品的例子吗?
这是一个说明我的问题的例子。
我的问题是:
在单击“确定”之前,如何向用户指示该命令会影响多项选择的子集?
任何人都可以举出能够很好地处理这种情况的现有产品的例子吗?
如果列表包含不同类型的项,并且操作仅适用于某些类型的列表项,则列表项和操作按钮都应反映它所指的类型。并且该项目应反映已对其进行的操作。(这听起来像你的描述。)
例如,这里是不同类型项目的列表:
ITEMS
NAME TYPE STATE
==== ==== ====
oatmeal cookie
chocolate cake
chocolate pudding
carrot cake
cherry pie
现在,如果用户选择了此列表中的所有项目,则标记为的按钮
"Frost Cake"
变为启用。在“Frost Cake”对话框打开和关闭后,执行了操作,列表现在看起来像这样:
ITEMS
NAME TYPE STATE
==== ==== ====
oatmeal cookie
chocolate cake frosted
chocolate pudding
carrot cake frosted
cherry pie
当然,这个例子可能并不完全正确。因为现在您可能想知道使用了哪种糖霜,并且您可能不想在所有蛋糕上都涂上相同的糖霜。但这是另一个问题。
我不知道有任何现有产品以您尝试的方式处理此问题,但我认为您采用了正确的方法。例如,CorelDraw 通过不允许用户多选混合可编辑和不可编辑(“锁定”)对象来避免这个问题,即使只是查看只读信息也是如此。同样,IronCAD 不会让您多选某些不同类别的对象(例如,相机和零件)。这对我来说似乎是一个不必要的限制。如果尝试为不同类的多个项目(例如,我的电脑和 pdf 文件)打开属性窗口,Windows XP 会忽略您。这可能会令人困惑和沮丧。在我看来,您希望通过允许多选任何内容并尽可能多地选择任何内容来为用户提供最大的灵活性。
这里有一些想法:
首先,尝试在主/父窗口中指示相关信息,以便用户可以猜测某些操作不会影响某些选定的对象。例如,给只读对象一个独特的外观,也许只在选择时(我在想象一个用于 CAD 类型应用程序手柄的小挂锁)。每一类对象都应该有一个独特的外观,也许通过用一个特定的图标标记每个对象。这样,当用户进行多选时,他们可以预测什么命令有意义和没有意义(例如,这个项目是一个相机,所以它可以移动但显然不能调整大小)。
如果在打开对话框之前应用程序无法判断什么适用于什么,那么可能会更改该操作不适用的对象选择的外观。例如,当用户更改属性值时,所有缺少该属性的对象都会在父窗口上呈现“次要”选择外观。
如果应用操作的标准不明显,您可能需要一些文本提示。调用该动作的菜单项或按钮可以在其标题中包括它影响多少项或它影响什么(例如,“仅钣金”)。在“属性”框中,您可以在属性列旁边包含一个列,该列表示每个属性适用于或可以更改的许多选定项。
如果这太占用空间,并且您需要做的就是指出只有一些对象受到影响(不是确切的数量、身份或比例),那么也许您可以在对话框中使用脚注。创建一个表示“部分”的符号,也许是一个半实心的圆圈?(不要使用星号——这通常意味着“必需”。)将此符号放在影响选择子集的任何控件旁边。在对话框底部,显示带有文本“= 仅适用于某些选定项目”的符号。</p>
您应该指出该操作仅在用户提交该操作之前部分应用是正确的,但作为后备,您可以在操作之后提供一些反馈。通常,您希望在父窗口中的对象中使任何操作的效果在视觉上显而易见,这可能就足够了。但是,如果您仍然担心用户会感到困惑(例如,被滚动出视图但他们后来注意到没有更改的对象),那么也许您可以提供一个文本通知(自我关闭),上面写着“[操作完成时] [n] of [m] 个选定项目”。如果用户不明白为什么,也许提供帮助链接。
看来您正在开辟一条新的 UI 设计之路。测试您对用户的任何决定以查看它是否真的有效,这将是一个好主意。