Files
MujicaUI/docs/components/057-month-picker.md
T

1.8 KiB

057 MonthPicker · 月份选择器

用途

按年份分页选择月份。

最小示例

var month mujica.YearMonth
view := func(c *ui.Context) {
	mujica.Use(c, mujica.Settings{})
	opts := mujica.MonthPickerOptions{Label: "Billing month", Clearable: true}
	if mujica.MonthPicker(c, &month, opts).Changed() {
		fmt.Println("month", month)
	}
}
ui.Render(view, 400, 300, 1)

参数

func MonthPicker(c *ui.Context, value *YearMonth, opts MonthPickerOptions) DateTimeResult,返回值嵌入 *ui.Element。

字段 类型 默认值 含义
Min YearMonth 零值 最早月份。
Max YearMonth 零值 最晚月份。
DisableMonth func(YearMonth) bool nil 不可选月份。
Clearable bool false 有值时显示清空按钮。
Today Date 零值(系统时钟) 标记当前月份。
Disabled bool false 禁用。
Label string 内置“选择月份” 辅助技术名称。

状态

默认、悬停、聚焦、选中(酒红填充)、当前月(加粗 + 菱形)、不可选(删除线)、禁用。

事件

Changed():选择或清空导致值变化时为 true。

键盘操作

  • Enter/Space/↓:打开。
  • ←/→:前后一月;↑/↓:前后三月(一行)。
  • PageUp/PageDown:上/下一年。
  • Home/End:一月/十二月。
  • Enter:选择并关闭;Escape:关闭。

限制

  • 键盘移到不可选月份时焦点保持在原处,可继续移动。
  • 日期与时间值不带时区:Date、YearMonth、TimeOfDay 只保存日历字段,组件内部计算不做 UTC 转换。
  • Today 为零值时读取 c.Now()(系统本地时区);需要固定“今天”(测试、跨时区应用)时显式传入。