Forms: components 041-050

This commit is contained in:
ZacharyZhang-NY committed 2026-10-05 12:24:13 -04:00
1 parent bff4c3f10d
commit e82a1ae6c2
53 files changed
+4341 -1

No files matched your search

+54
View File
@@ -0,0 +1,54 @@
# 043 InputGroup
输入组合。
## 用途
把单行输入框与前后缀文字、按钮放进同一个边框,例如网址前缀、单位、清空或搜索按钮。每个按钮保留独立焦点。
## 最小示例
```go
site := ""
view := func(c *ui.Context) {
mujica.Use(c, mujica.Settings{})
g := mujica.InputGroup(c, &site, mujica.InputGroupOptions{
Prefix: "https://", Label: "Site",
Buttons: []mujica.InputGroupButton{{Label: "Open"}},
})
if g.Clicked == 0 {
c.OpenURL("https://" + site)
}
}
ui.Render(view, 400, 300, 1)
```
## 参数
| 字段 | 类型 | 默认值 | 含义 |
| --- | --- | --- | --- |
| `value` | `*string` | 必填 | 输入框的值。 |
| `Prefix / Suffix` | `string` | "" | 输入框前后的固定文字。 |
| `Buttons` | `[]InputGroupButton` | nil | 按钮:Label(必填,文字或无障碍名称)、Icon、IconOnly、Leading(放在输入框前)、Disabled。 |
| `Placeholder` | `string` | "" | 占位文字。 |
| `Label` | `string` | "" | 不在 FormField 内时为输入框命名。 |
| `Disabled` | `bool` | false | 禁用整个组合。 |
| `ReadOnly` | `bool` | false | 值显示为可选择、可复制、可聚焦的文字,不能修改;按钮仍可用。 |
| `Invalid` | `bool` | false | 边框显示危险色。 |
## 状态
默认、悬停(边框加深)、聚焦(强调色边框与焦点环)、禁用、只读、错误。
## 事件
`InputGroupParts.Changed()` 值被编辑;`Submitted()` 在输入框中按 Enter;`Clicked` 为被点击按钮在 Buttons 中的下标,未点击为 -1。`Input` 为可聚焦的输入元素。
## 键盘操作
输入框与每个按钮都是独立的 Tab 停靠点;按钮响应 Enter 和 Space;输入框保留选择、剪贴板、撤销与输入法。
## 限制
- MyGo 没有公开的只读输入框,ReadOnly 改用可选择文字实现,宽度与输入框一致。
- IconOnly 按钮必须提供 Icon,Label 作为无障碍名称;缺失时 panic。