第四维度学习基础知识
4D 平台最显着的功能之一是支持自定义菜单。您不仅可以构建自己的菜单栏,还可以将 4D 配置为直接在自定义菜单模式下启动,让您从应用程序打开的那一刻起就可以完全控制用户的体验。这与许多快速应用程序开发工具有很大不同,在这些工具中,菜单栏很大程度上由框架固定,并且您只能启用或禁用内置命令。
使用 4D 自定义菜单,您可以修改文件菜单并在编辑菜单和帮助菜单之间添加您自己的菜单和菜单项。 编辑和帮助菜单是固定的 - 您无法修改它们。其他一切都由您设计。
要点
- 4D 自定义菜单可让您用自己设计的菜单栏替换默认菜单栏,并且您可以将应用程序设置为在自定义菜单模式下打开以实现完全控制。
- 您可以修改“文件”菜单并在“编辑”和“帮助”菜单之间插入您自己的菜单和项目,但“编辑”和“帮助”菜单本身是固定的。
- 您可以创建多个不同的菜单栏,并将每个菜单栏分配给不同的情况 - 但过度使用这会导致用户感到困惑。
- 将您计划的菜单栏与已建立的程序使用的菜单栏进行比较是在您提交设计之前对您的设计进行健全性检查的实用方法。
- 菜单设计既是一项技术决策,也是一项用户体验决策;一致性和可预测性比聪明更重要。
为什么自定义菜单在 4D 中很重要
在传统的桌面应用程序中,菜单栏是程序功能的主要映射。用户扫描它来发现功能,并且他们依赖它的稳定性。当您将 4D 应用程序交付给业务团队时,菜单栏通常是他们首先与之交互的东西 - 在接触任何表单、列表或记录之前。
这使得菜单栏成为一个设计表面,而不是事后的想法。 4D 通过让开发人员完全拥有它来认识到这一点。实际后果值得阐明:
- 您可以控制可发现性。 如果某个功能很重要,您可以将其放在用户可以找到它的菜单中,而不是希望他们偶然发现某个按钮。
- 您控制词汇。 内置菜单标签使用通用术语。您的自定义标签可以使用用户实际使用的语言 - “发布发票”而不是“执行”。
- 您可以控制启动体验。 通过在自定义菜单模式下打开,您可以防止用户误入默认的 4D 菜单,这些菜单会暴露他们永远不应该接触的内部结构。
- 您可以控制范围。 您可以通过不将给定用户组的整个功能类别放在该组的菜单栏中来隐藏它们。
权衡就是责任。一旦您接管了菜单栏,您就拥有了它的一致性、完整性以及随着应用程序的增长而进行的维护。
你可以改变什么,不能改变什么
尽早了解界限可以避免很多挫败感。规则很简单:
Related: — A spreadsheet-simple interface sitting on top of a real , with automations, views, and shareable interfaces..
- **文件菜单 — 可修改。**您可以重新调整它的形状以匹配应用程序的文件相关操作。
- 编辑菜单 — 固定。 您无法修改它。这是经过深思熟虑的:“编辑”菜单具有标准的剪贴板和编辑行为,用户希望在应用程序之间具有相同的行为。
- 帮助菜单 — 固定。 同样不可修改,出于同样的原因 — 帮助访问应该是可预测的。
- 编辑和帮助之间 — 您的领地。 这是您自己的菜单和菜单项所在的位置。
固定“编辑”和“帮助”背后的设计逻辑是合理的,值得内化为一个原则:**标准行为应该保持标准。**用户围绕剪切、复制、粘贴、撤消和帮助访问建立肌肉记忆。如果每个应用程序都重新定义这些,平台就会感到混乱。 4D 保护该基线并为您提供其他任何地方的自由。
一个有用的思维模型:将菜单栏视为具有保留区域(编辑和帮助)和创作区域(其他所有区域)。你的工作是让创作区感觉像保留区一样不可避免且组织良好。
设计菜单栏:实用指南
在开始单击菜单编辑器之前,请确定您的应用程序实际需要公开的内容。菜单栏是一个层次结构,而层次结构很容易出错。
If you are shopping: — A that plugs into the wider Zoho suite and prices per user rather than per app..
从用户任务开始,而不是从代码结构开始
一个常见的错误是镜像数据库的内部结构——每个表一个菜单,每个方法一个项目。用户不会用表格和方法来思考。他们按任务思考:“输入新订单”、“寻找客户”、“运行月度报告”。围绕这些任务构建菜单。
按频率和风险分组
将最常用的命令放在最容易到达的位置。将破坏性或不可逆转的命令(删除、清除、存档)远离常规命令,并考虑需要确认。菜单放置是防止错误的一种形式。
保持深度浅
两层嵌套(菜单 → 项目)对于大多数用户来说都很舒服。当子菜单确实是一个类别时,三个级别(菜单→子菜单→项目)是可以接受的。除此之外,用户会忘记自己在哪里。如果您发现自己需要四个级别,则该功能可能属于表单或对话框。
使用分隔符并保持一致的顺序
分隔符直观地对相关项目进行分组。在组内,按预期频率或逻辑顺序(例如,执行工作流的顺序)对项目进行排序。在各个版本之间保持顺序稳定 - 在版本之间重新排序菜单是用户沮丧的一个微妙但真正的根源。
将标签写为动词或明确的名词
“打印发票”比“发票打印”更清晰。 “报告”作为菜单标题就可以了; “报告”作为一个项目是不明确的。与用户日常使用的其他软件中已经看到的约定相匹配。
多个菜单栏:权力与危险
4D 可让您创建多个不同的菜单栏,并将每个菜单栏分配给不同的情况。这实在是太强大了。典型的合法用途包括:
- 基于角色的菜单。 数据输入职员看到精简的菜单;主管看到批准和报告命令。
- 基于上下文的菜单。 打开记录时显示的菜单可能与搜索屏幕上显示的菜单不同。
- 基于模式的菜单。 “设置”或“管理”模式可以公开普通操作隐藏的配置命令。
这里的原始指南值得重复和强调: 我建议在此小心谨慎,因为它很容易使用户感到困惑。 多个菜单栏会增加用户必须跟踪的状态数量。如果命令根据上下文移动或消失,用户可能会认为该功能已消失而不是重新定位。
一个实用的经验法则:
| 情况 | 推荐方法 |
|---|---|
| 不同的用户角色需要不同的能力 | 独立的菜单栏——清晰合理 |
| 相同用户,不同屏幕 | 喜欢一个稳定的菜单栏;禁用而不是删除项目 |
| 很少使用的管理任务 | 专用的管理菜单栏,通过登录进行控制 |
| 细微的上下文差异 | 保留一个菜单栏;更改项目状态,而不是布局 |
原则:**尽可能更改可用性,而不是位置。**灰色项目仍然告诉用户该功能存在。一件消失的物品什么也没告诉他们。
与既定程序的比较
为了帮助了解其他程序使用什么菜单栏,进行直接比较可能会有所帮助。这是 4D 开发人员可以采取的最实用的习惯之一。原始材料中的图 5 显示了菜单栏的比较 - 并排显示了不同应用程序如何排列其顶级菜单。
这项练习的价值在于菜单约定很大程度上是继承的,而不是发明的。数十年的桌面软件对于什么属于哪里已经达成了一个粗略的共识。研究文字处理程序、电子表格、数据库客户端和会计软件包中的共识将为您提供一个可以遵循或故意偏离的基线。
当您比较菜单栏时,请查找:
- 顶级计数。 大多数成熟的应用程序都采用少量的顶级菜单。一个有十几个条目的菜单栏感觉很混乱。
- 命名约定。 请注意“文件”、“编辑”、“查看”、“工具”和“帮助”的使用一致性,以及应用程序在何处插入自己的域菜单。
- 特定于域的菜单的放置。 垂直应用程序将其特定于行业的命令放在哪里?通常在标准菜单之后、帮助之前 — 4D 区域正是向您开放的。
- 项目密度。 每个菜单下有多少项目,它们是如何分开的?
有关约定本身的背景,有关菜单栏 和文件菜单 的维基百科文章是了解这些模式的来源及其持续原因的有用参考。
一个有效示例:小订单跟踪应用程序的菜单栏
假设您正在为一家小型企业构建一个普通的订单跟踪应用程序。一个合理的自定义菜单栏可能如下所示:
- 文件 — 新订单、打开订单、打印、打印预览、退出
- 编辑 —(已修复;保持原样)
- 订单 — 输入订单、查找订单、发布订单、作废订单
- 客户 — 新客户、查找客户、客户历史记录
- 报告 — 每日摘要、每月摘要、缺货报告
- 帮助 —(已修复;保持原样)
注意几个经过深思熟虑的选择。域菜单(订单、客户、报告)位于编辑和帮助之间,正是 4D 允许的位置。破坏性命令(作废订单)分组在菜单末尾,与常规条目分开。 “报告”菜单是一个平面列表,而不是嵌套的层次结构,因为只有三个报告。如果报告列表增加到十五个,则按类别设置子菜单将变得合理。
现在考虑角色的变化。仓库职员可能会得到相同的栏,但没有报告菜单。经理得到了完整的菜单栏。这是多个菜单栏的合法使用。但是,如果店员的菜单栏也以与经理不同的方式重新排序订单项目,那么您就会造成混乱,但没有任何好处。
要避免的常见陷阱
- 意外暴露默认 4D 菜单。 如果您未将应用程序设置为在自定义菜单模式下打开,用户可能会访问暴露设计模式功能的内置菜单。尽早锁定这一点。
- 在多个菜单中重复命令。 如果“打印”同时出现在“文件”和“报告”下,用户会想知道它们是否不同。每个命令选择一个家。
- 使用菜单项作为功能的唯一路径。 菜单是为了可发现性;还应该可以从表单和工具栏访问常用的操作。
- **忘记键盘快捷键。**没有快捷键的菜单项会强制使用鼠标。在存在常规快捷方式的地方分配它们。
- 永远不要重新审视设计。 菜单栏会堆积冗余。检查您的每个版本并删除不再使用的内容。
这如何适应更广泛的 4D 学习路径
自定义菜单与本系列中介绍的其他几项基础 4D 技能并存:理解定义和术语、将 4D 菜单与 FileMaker Pro 的菜单进行比较、专门塑造文件菜单以及构建自定义启动屏幕。这些共同构成了 4D 应用程序的“表示层”——用户在接触数据模型之前看到的部分。
核心主线是控制。 4D 使您能够对应用程序面向用户的 shell 进行不同寻常的控制。自定义菜单是这一理念最清晰的表达之一,随着应用程序范围和受众的增长,尽早掌握它们会带来好处。
常见问题
我可以修改 4D 中的“编辑”和“帮助”菜单吗?
不可以。“编辑”和“帮助”菜单是固定的,无法修改。这是有意为之的,因为这些菜单具有标准行为(剪贴板操作、撤消和帮助访问),用户希望这些行为在应用程序之间保持一致。您的自定义发生在“文件”菜单以及“编辑”和“帮助”之间的空间中。
我的自定义菜单和菜单项出现在哪里?
您自己的菜单和菜单项将插入到“编辑”和“帮助”菜单之间。这是4D为开发者保留的开发区。文件菜单也是可修改的,而编辑和帮助则不可修改。
我应该为我的应用程序创建多个菜单栏吗?
仅当差异确实合理时 - 最常见的是不同的用户角色或管理模式。多个菜单栏使用户必须跟踪的状态成倍增加,这很容易使人们感到困惑。如有疑问,请保留一个菜单栏并更改项目可用性而不是布局。
“以自定义菜单模式打开”实际上有什么作用?
它告诉 4D 使用自定义菜单栏而不是默认的 4D 菜单来启动应用程序。这使您可以完全控制程序面向用户的 shell,并防止用户访问暴露他们不应该看到的内部结构的内置菜单。
我如何知道我的菜单栏设计是否良好?
直接将其与已建立的程序进行比较。菜单约定很大程度上是继承的而不是发明的,因此研究文字处理程序、电子表格和数据库客户端如何排列其顶级菜单可以为您提供可靠的基线。查看顶级计数、命名、特定于域的菜单的位置以及项目密度。
如果菜单项在某些情况下消失,这是一个问题吗?
可能会。灰色的项目仍然告诉用户该功能存在;消失的项目不会告诉他们任何信息,并可能导致他们认为该功能已被删除。尽可能改变可用性而不是改变位置。
Frequently asked questions
我可以修改 4D 中的编辑和帮助菜单吗?
不可以。“编辑”和“帮助”菜单是固定的,无法修改。这是有意为之的,因为这些菜单具有标准行为(剪贴板操作、撤消和帮助访问),用户希望这些行为在应用程序之间保持一致。您的自定义发生在“文件”菜单以及“编辑”和“帮助”之间的空间中。
我的自定义菜单和菜单项出现在哪里?
您自己的菜单和菜单项将插入到“编辑”和“帮助”菜单之间。这是4D为开发者保留的创作区。文件菜单也是可修改的,而编辑和帮助则不可修改。
我应该为我的应用程序创建多个菜单栏吗?
仅当差异确实合理时 - 最常见的是不同的用户角色或管理模式。多个菜单栏使用户必须跟踪的状态成倍增加,这很容易使人们感到困惑。如有疑问,请保留一个菜单栏并更改项目可用性而不是布局。
“以自定义菜单模式打开”实际上有什么作用?
它告诉 4D 使用自定义菜单栏而不是默认的 4D 菜单来启动应用程序。这使您可以完全控制程序面向用户的 shell,并防止用户访问暴露他们不应该看到的内部结构的内置菜单。
我如何知道我的菜单栏设计是否良好?
直接将其与已建立的程序进行比较。菜单约定很大程度上是继承的而不是发明的,因此研究文字处理程序、电子表格和数据库客户端如何排列其顶级菜单可以为您提供可靠的基线。查看顶级计数、命名、特定于域的菜单的位置以及项目密度。
如果菜单项在某些情况下消失,这是一个问题吗?
可以的。灰色的项目仍然告诉用户该功能存在;消失的物品不会告诉他们任何信息,并可能导致他们认为该功能已被删除。尽可能改变可用性而不是改变位置。
Try FileMaker Free for 45 Days
The long-running relational database platform for teams that need custom apps on desktop, web, and mobile from a single file.