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