弹出式窗口

弹出式窗口是单击控件视图时显示在屏幕的其他内容上方的视图。例如,当你在日历中双击一个事件时,会在一个弹出式窗口中显示信息。通常,弹出式窗口包括指向其出现位置的箭头。弹出式窗口还支持Vibrancy

弹出式窗口 - 图1

弹出式窗口可以响应于用户交互(瞬态行为),响应用户与弹出式窗口呈现的视图元素的交互(半瞬态行为)并且以App定义的方式关闭。弹出式窗口也可以被拆卸。当用户拖动弹出式窗口时,可将弹出式窗口分离成为一个单独的窗口,从而在用户与其他内容进行交互时使其在屏幕上保持可见。

使用弹出式窗口展示少量信息或功能。 由于弹出式窗口在用户与其交互后消失,因此将弹出式窗口中的功能限制为一些相关任务。例如,日历的事件弹出框使人们可以轻松更改事件的日期或时间,或将其移动到另一个日历。用户进行更改后,弹出式窗口消失,使他们能够继续查看日历中的事件。

考虑使用弹出式窗口而不是侧边栏和面板之类的临时视图。 弹出式窗口可以帮助你简化界面,为内容留出更多空间。

根据弹出式窗口的功能启用对应的关闭行为。 当不再需要弹出式窗口时,它将自动关闭。如果弹出式窗口仅显示一组选项,请考虑在用户做出选择后立即将其关闭,这与菜单的行为类似。当可以进行多个选择时,弹出式窗口应保持打开状态,直到用户明确将其关闭或在其边界之外单击。

提供“关闭”按钮仅用于确认或指导。 关闭按钮(例如“取消”或“完成”)仅在其明确需要时才提供,例如用于保存或不保存更改的退出。

自动关闭弹出式窗口时,请务必保存工作。 单击屏幕上的另一个区域通常很容易无意间关闭弹出式窗口。仅当有人单击明确的“取消”按钮时,才不保存工作。

小心在屏幕上放置弹出式窗口 弹出式窗口的箭头应直接指向显示它的元素。点击后显示弹出式窗口的元素也不应该被它显示的弹出式窗口所覆盖。

弹出式窗口 - 图2

考虑让人们分离弹出式窗口 如果希望在弹出式窗口保持可见的情况下查看其他信息,则用户可能希望能够将弹出式窗口转换为面板。

对分离的弹出式窗口进行最小的外观更改。 该面板应类似于原始的弹出式窗口,因此用户不会失去上下文。

一次在屏幕上显示一个弹出式窗口 显示用户未明确分离的多个弹出式窗口会使界面混乱,并引起混淆。切勿显示一个弹出式窗口层叠在另一个弹出式窗口之上或之下。如果需要显示新的弹出式窗口,请先关闭已经打开的弹出式窗口,然后再打开另一个。

不要在弹出式窗口上显示其他视图Alert外,弹出式窗口层级之上不应显示任何内容。

避免使弹出式窗口太大。 弹出式窗口不应占据整个屏幕。使它仅大到足以显示其内容并指向其来源。

通常,保留标准的弹出式窗口外观。 默认情况下,弹出式窗口外观为浅色,当然也可以使用深色外观,但通常深色外观的弹出式窗口适用于沉浸式,以媒体资源为中心的App。

确保自定义弹出式窗口仍然和标准弹出式窗口长得很像。 尽管你可以自定义弹出式窗口的许多视觉外观,但要避免创建人们可能不会识别为弹出式窗口的设计。弹出式窗口只包含标准控件和视图时,它们往往具有更好的效果。

更改弹出式窗口的大小时,提供平滑的过渡。 一些弹出式窗口提供相同信息的简明视图和扩展视图。例如,日历的事件弹出式窗口在最初显示时是折叠的。当编辑某些属性时,它会展开以显示其他选项。对大小变化进行动画处理,以避免给人以新的弹出式窗口代替旧的弹出式窗口的印象。

不要将弹出式窗口用作提醒。 弹出式窗口Alert是非常不同的界面元素。人们选择看到一个弹出式窗口时,他们不应该看到一个Alert。如果交替使用弹出式窗口Alert,则会模糊它们之间的区别并引起混乱。如果你使用弹出式窗口警告用户严重问题或帮助他们避免迫在眉睫的意外数据丢失,则可能会导致用户忽略弹出式窗口而不阅读内容,并在出现负面结果时指责你的App。如果你确实需要警告用户(这种情况很少发生),请使用Alert。请参阅Alert

避免在用户文档中使用“弹出式窗口”一词。 而是,请参考特定的任务或选择。例如,你可以写“选择’显示’按钮”来代替“选择弹出式窗口底部的’显示’按钮”。也不要将弹出式窗口称为对话框窗口

有关开发人员的指导,请参阅NSPopover