macos - 关闭 Electron 应用程序时如何本地显示“保存更改”对话框?

标签 macos vue.js electron file-management electron-vue

我正在创建一个 Electron 应用程序。我将用户进度保存在一个文件中。我希望应用在用户未保存并尝试关闭应用时显示通常的“关闭前保存更改”。 p>

我可以显示一个自定义对话框,但是,我想以 native 方式进行。

(示例:在 macOS 上,当您编辑文件时,红色按钮会发生变化,让用户知道该应用程序有未保存的内容)

Example of what I want to accomplish

我知道这可能必须在关闭应用程序的 Electron 监听器中完成:

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

... 阻止 quit() 被调用。而是处理未保存的文件状态和对话框。

PD:我已经处理了了解用户是否已保存其进度的逻辑。我只想知道如何为我的 Electron 应用程序设置“未保存”状态并正确处理它。

(例子是Visual Studio Code,也是一个Electron App)

最佳答案

我通常使用全局变量来指示发生的变化,例如在关闭应用程序的情况下: 主要代码:

mainWindow.on('close', function (event) {
if (global.savetoask== 'Yes') {
   event.preventDefault();
    //send a ipc message to request a confirm dialog
.............
          } else {
            app.exit();
          }
        });

关于macos - 关闭 Electron 应用程序时如何本地显示“保存更改”对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49787588/

相关文章:

macos - 在 Textmate2 中,如何禁用 Markdown 文档中的标题样式?

macos - 在 Qt 应用程序中如何捕获 "Cmd-Q"或 "Quit"菜单单击

javascript - 从子文件夹动态 Vue 导入

javascript - 如何在 Vuetify 中显示 <v-text-field> 的动态占位符文本?

javascript - 无法将 v-model 与 vue-date-picker 绑定(bind)

javascript - 如何在 Electron 中使用 Parcel 捆绑 javascript?

javascript - Electron 截图太小

Java 应用程序不通过 Finder 中的 .apps 启动

macos - sed仅替换特定文件的第一个前导空格匹配-处理仅CR的行尾

javascript - 在javascript中添加外部javascript文件