Skip to content

警报对话框 ​

ui.AlertDialog 在一个 *bool 为 true 时,在窗口之上询问重要事项, 如同 AppKit 的警报:一个标题、一条消息和若干按钮,其中最后一个为默认 按钮,以强调色显示并拥有焦点,按 Enter 即点击它。Escape 会关闭警报而不 选择任何按钮,等同于取消——无论按钮写着什么、无论何种语言;点击警报外部 没有任何作用。它返回被点击按钮的索引:在该按钮被点击的那一帧返回(该帧 会关闭警报);在 Escape 关闭警报的那一帧返回 ui.AlertDismissed;其他 情况返回 -1。

go
if ui.Button(c, "Delete").Clicked() {
	app.asking = true
}
switch ui.AlertDialog(c, &app.asking, "Delete “Notes”?", "You can't undo this.", "Cancel", "Delete") {
case 1:
	app.delete()
}

必须作出回答的警报,可以在 Escape 将其关闭时把 *bool 重新设为 true 以保持打开:

go
if ui.AlertDialog(c, &app.updating, "Update required", "Restart to finish updating.", "Restart") == ui.AlertDismissed {
	app.updating = true
}

若要使用自定义内容的对话框,请使用对话框;对于用户可以撤销 的选择,请立即执行操作,并在提示条中提供撤销选项。

无障碍 ​

辅助技术会看到一个以标题命名、以消息描述的警报对话框,焦点位于其默认 按钮上。