Skip to content

Settings API 进阶 ​

设置面板是用户配置插件的主要界面。进阶用法包括动态生成、分组折叠与搜索可见性。

核心要点 ​

动态设置 ​

ts
this.addSettingTab(new MySettingTab(this.app, this));

class MySettingTab extends PluginSettingTab {
  display() {
    this.containerEl.empty();
    new Setting(this.containerEl)
      .setName("开关")
      .setDesc("启用某功能")
      .addToggle((t) => t.setValue(this.plugin.enabled)
        .onChange(async (v) => { this.plugin.enabled = v; }));
  }
}

进阶技巧 ​

  • 动态增删:根据其他配置项隐藏/显示相关设置(setting.settingEl.toggleClass("hidden", ...))
  • 搜索可见:1.13 起设置全局可搜索,声明式 Settings API 注册的设置项会自动进入搜索范围
  • 依赖关系:某项变更后调用 this.display() 重绘整个面板以反映新状态

注意事项 ​

  • display() 开头务必 containerEl.empty(),否则设置会重复堆叠
  • 1.13.6 修复了设置控件在禁用状态下的显示效果,可放心用 disabled

相关阅读 ​