232 ToolToggleMenu 工具开关菜单
用途
联网、代码执行等工具开关;需授权项标记。
最小示例
web := true
view := func(c *ui.Context) {
core.Use(c, core.Settings{})
tools := []chat.ToolItem{{ID: "web", Label: "Web search", On: &web}}
if id, ok := chat.ToolToggleMenu(c, tools).Changed(); ok {
fmt.Println("toggled", id)
}
}
ui.Render(view, 400, 300, 1)参数
tools 每项 ID、On 必填;Label、Description 由调用方提供;NeedsAuth=false;需要授权时由 Authorized 控制开关可用性。
状态
默认、悬停、键盘焦点与祖先禁用;业务状态由调用方提供。
事件
Changed() 返回切换工具 ID;Authorize() 返回授权请求 ID。
键盘操作
Tab 到菜单按钮;Enter/Space 打开;Tab 到开关与授权;Escape 关闭。
限制
授权与工具执行由调用方完成。

