Files
MujicaUI/docs/components/044-pin-input.md
T

49 lines
1.5 KiB
Markdown

# 044 PinInput
验证码输入。
## 用途
输入固定位数的数字验证码。值是字符串,保留前导零。
## 最小示例
```go
code := ""
view := func(c *ui.Context) {
mujica.Use(c, mujica.Settings{})
if mujica.PinInput(c, &code, mujica.PinInputOptions{Length: 6}).Completed() {
fmt.Println("verify", code)
}
}
ui.Render(view, 400, 300, 1)
```
## 参数
| 字段 | 类型 | 默认值 | 含义 |
| --- | --- | --- | --- |
| `value` | `*string` | 必填 | 当前数字串;含非数字或超出位数时 panic。 |
| `Length` | `int` | 6 | 位数。 |
| `Label` | `string` | 内置“Verification code/验证码” | 无障碍名称。 |
| `Disabled` | `bool` | false | 禁用。 |
| `Invalid` | `bool` | false | 格子边框显示危险色。 |
## 状态
默认、聚焦(当前格强调边框、焦点环与光标)、输入法组合中(当前格显示带下划线的组合文字)、禁用、错误。
## 事件
`PinInputParts.Changed()` 值改变;`Completed()` 在用户填满最后一格的那一帧为 true。
## 键盘操作
数字键依次填格;非数字被忽略;Backspace 清除最后一位;Cmd/Ctrl+V 或编辑菜单粘贴整段,取其中的数字填满各格。
## 限制
- 只支持数字。编辑按顺序进行:只能在末尾追加或删除,不能单独改中间某一格。
- 输入法组合期间不提交、不跳格;组合结束后才写入值。
- 整个组件是一个焦点停靠点,屏幕阅读器以文本框读出名称与“已输入 n / N 位”的说明。