我的应用程序是上下文敏感的,我动态地为主窗口/上下文/弹出窗口和其他地方构建菜单。我通常知道给定的菜单命令在给定应用程序的当前状态时是否有效。是否更好的做法是禁用/灰色当前不适用的菜单选项或者因为我正在生成菜单,完全是OMIT吗?
应用程序是Java / Swing,任何人都很好奇。这个问题似乎与GUI工具包无关,但可能与平台有关。
答案 0 :(得分:1)
旧苹果指南说禁用固定菜单(在菜单栏中),省略上下文菜单。
我想动机是上下文菜单应该只显示特定上下文可用的选项,主菜单应该显示所有命令,因此用户知道“保存”的位置即使它是目前无法选择。
答案 1 :(得分:0)
对于右键单击菜单,我会说如果该项目适用于右键单击的内容,但由于某些其他外部原因不可用,请将其禁用。如果它不适用于右键单击的东西,则隐藏它,因为它没有机会出现。一个很好的例子:
当我在Firefox中右键单击此页面的背景区域时,前四项是Back,Forward,Reload和Stop。前进和停止被禁用,因为它们现在不是有效的操作(我没有前进历史记录,页面不再加载)。这四个人一直被提供,他们是预期的,全球性的常用命令。它们是四个主要的“导航”控件,默认情况下它们具有工具栏对应物(以大专用按钮的形式)。
但是,如果我右键单击图像,我会在上下文菜单中获得完全不同的选项,这些选项都与查看,保存和复制图像在我单击的位置相关。在正常使用情况下,这些选项根本不显示(甚至没有禁用),因为它们非常特定于我右键单击的内容。右键单击背景区域时,“停止并转发”(当前无效的操作)仍适用于我点击的内容(页面)但由于其他原因而无法使用...
与顶部菜单栏上的菜单规则一样,目标不是从用户的角度出现令人费解的原因而突然出现命令的用户。