我正在编写一个Atom插件,但我想与用户一起检查一些选项。
该插件包含不同任务的子菜单。每项任务都需要设置几个选项。
为此,我想提供一个对话框,其中包含您在HTML表单中使用的表单控件,例如复选框,单选按钮和文本框。我希望每个子菜单项都有一个不同的对话框。
Atom Editor似乎没有太多使用它们,所以我甚至不确定它是否可以完成。
如何创建或模拟对话框?
答案 0 :(得分:2)
Atom API提供了多个对话框,包括confirm,modal和notifications。除非您想使用自己的逻辑编写自己的模态,否则您可以使用通知来表明您的包需要调整其设置。
示例:强>
var meta, notification;
meta = require("../package.json");
if (atom.config.get(meta.name + ".essentialSetting") === false) {
notification = atom.notifications.addWarning("You need to adjust your package settings", {
dismissable: true,
buttons: [
{
text: "Open Settings",
onDidClick: function() {
atom.workspace.open("atom://config/packages/" + meta.name);
return notification.dismiss();
}
}
]
});
}
意见:如果你决定把它放在activate()
中,那么可能通过添加第二个按钮来减少这种不那么突兀:
{
text: 'Ignore',
onDidClick: function () {
atom.config.set(meta.name + '.muteWarning', true);
notification.dismiss();
}
}
PS:您可以忽略meta.name
位并将其替换为您的设置名称,这是我在大多数软件包中使用的方便。