【问题标题】:Atom Editor Plugin: Can I create a dialog box?Atom Editor Plugin:我可以创建一个对话框吗?
【发布时间】:2017-03-14 05:19:48
【问题描述】:

我正在编写一个 Atom 插件,但我想与用户检查一些选项。

插件有用于不同任务的子菜单。每个任务都需要设置几个选项。

为此,我想展示一个对话框,其中包含您在 HTML 表单中使用的那种表单控件,例如复选框、单选按钮和文本框。我希望每个子菜单项都有一个不同的对话框。

Atom Editor 似乎并没有太多使用它们,所以我什至不确定它是否可以做到。

如何创建或模拟对话框?

【问题讨论】:

  • 为什么不使用带有打开包设置按钮的标准 Atom 通知?
  • @idleberg 感谢您的评论。你能解释一下怎么做吗?我还编辑了问题以明确我想要什么。这不仅仅是一组偏好。
  • 你想要一个对话框,还是想要你所描述的?

标签: javascript plugins dialog atom-editor


【解决方案1】:

Atom API 提供了几个对话框,包括confirmmodalnotifications。除非您想使用自己的逻辑编写自己的模式,否则您可以使用通知来传达您的包需要调整其设置。

示例:

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 位并将其替换为您的设置名称,为了方便起见,我在大多数软件包中都使用了它。

【讨论】:

  • 感谢您的回答,但是,由于我想经常检查设置,我想我宁愿选择 modal 选项。您提供的链接令人大开眼界,但信息量不是很大。你知道我可以在哪里了解更多信息吗?
  • Atom API 文档相当简短。也许看看script 包的来源。 script:run-options 命令的dialog 是一个相对复杂的模态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多