Skip to content

查找栏(Find bar) ​

ui.FindBar 在某个 *bool 为 true 时创建一个用于查找文本的栏,如同 Safari 和 Xcode 的查找栏:一个查询字段,栏打开时它获得焦点并选中上次的查询,显示匹配数量,带有选择当前匹配项的前一处/后一处按钮,以及 Done(完成)按钮。

go
if c.Shortcut(ui.Cmd, ui.KeyF) {
	app.finding = true
}
matches := app.find(app.query) // 应用统计匹配数
ui.FindBar(c, &app.finding, &app.query, len(matches), &app.match)
if app.finding && len(matches) > 0 {
	app.show(matches[app.match])
}

查找由应用完成:它统计查询的匹配数并显示当前匹配项,Changed 报告会移动到哪一个。

键盘 ​

字段中按 Enter 转到下一个匹配项,Shift+Enter 转到上一个;macOS 上的 Cmd+G 和 Shift+Cmd+G、其他平台上的 F3 和 Shift+F3 同样如此,到两端会循环;Escape 和 Done 关闭查找栏。

关闭时,它返回一个什么都不显示的元素。

无障碍 ​

辅助技术将其视为一个名为 "Find" 的工具栏,其中包含一个搜索字段,并能在匹配数量变化时听到播报。它的名称、计数("3 of 12"、"No matches")和 Done 都使用窗口所在的语言(MyGo 自身的字符串)。