如何在电子对话框中添加两个文本字段和一个按钮

问题描述 投票:0回答:3

我已经调用了带有示例消息和弹出按钮字段的对话框,但另外我需要在同一个对话框中包含两个文本字段,但我无法做到。

任何人都可以通过合适的答案解决我的问题吗?

这是我在 Electron 应用程序中的示例代码:

dialog.showMessageBox({ message: "Hello There :-)",
        buttons: ["OK"] }); 
javascript dialog electron textfield
3个回答
1
投票

Electron 不支持提示对话框。 也不支持 window.prompt

一种解决方案可能是在渲染器进程中使用 sweetalert 或其他一些 npm 包。如果需要从主进程调用它,可以使用ipcMain将其发送到渲染器。

(未经测试)示例

主要流程:

const { ipcMain } = require('electron')

let promptHandler

ipcMain.on('prompt-handler-registered', event => promptHandler = event.sender)

// Create Promise to make it easier to get the promptHandler
const getPromptHandler = new Promise((resolve) => {
  const watcher = setInterval(() => {
    // You'll probably want to set a timeout here
    if (!promptHandler) return

    resolve(promptHandler)
    clearInterval(watcher)
  }, 200)
})

...

// When you want to prompt the user
getPromptHandler
  .then(ph => ph.send('display-prompt', {
      title: 'Whats your name?',
      ...
    })
  )

渲染器进程:

const { ipcRenderer } = require('electron')
const swal = require('sweetalert2')

function displayPrompt(data) {
  swal({
    title: data.title,
    input: 'text',
  })
}

ipcRenderer.send('prompt-handler-registered')

ipcRenderer.on('display-prompt', displayPrompt)

0
投票

您需要实现自己的对话框系统来显示带有两个文本字段的对话框。 Electron 中的 dialog API 不支持那种程度的自定义对话框。


0
投票

尝试电子提示!我也遇到了几乎同样的问题

© www.soinside.com 2019 - 2024. All rights reserved.