首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电子:使用showOpenDialog允许在Linux和Win10上选择文件,但为什么不能选择MacOS上的文件呢?

电子:使用showOpenDialog允许在Linux和Win10上选择文件,但为什么不能选择MacOS上的文件呢?
EN

Stack Overflow用户
提问于 2019-10-30 17:52:22
回答 1查看 462关注 0票数 2

我使用以下代码(在Linux和Win10上非常成功)来选择一个文件(并最终读取其内容)。

这是在我的main.js中,在Linux和Win10上弹出一个对话框,允许我选择一个文件。

代码语言:javascript
复制
ipc.on('open-file-dialog', function (event) {
  dialog.showOpenDialog({
    properties: ['openFiles'],
    defaultPath: specialFoldersPath,

  }, function (files) {
    if (files) event.sender.send('selected-file', files)
  })
})

代码也弹出了MacOS上的文件打开对话框,但是,在运行MacOS Mojave v10.14.6的Mini上,我看到了以下内容:

请注意,我可以选择一个文件夹,但我不能选择任何文件(它们是灰色的和禁用的)。

我已经检查了https://electronjs.org/docs/api/dialog的选项,但是我没有看到需要为MacOS设置允许选择文件的任何附加选项。你知道为什么会发生这种事吗?

注意到:当我写这篇文章时,我注意到一些代码最终成为解决方案。然而,既然这么说,你可以张贴一个问题的答案,但没有被问到,因为这是一个有趣的问题,我决定张贴和回答。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-30 17:52:22

盯着文档看了一段时间后,我注意到了这个问题。非常微妙。以下是文档中的重要部分:

糟了!属性值是openFile而不是openFile

红鲱鱼是这样一个事实:它在Linux和Win10上确实正常工作(具有错误的属性值)。

这是固定代码:

代码语言:javascript
复制
ipc.on('open-file-dialog', function (event) {
  dialog.showOpenDialog({
    properties: ['openFile'],
    defaultPath: specialFoldersPath,

  }, function (files) {
    if (files) event.sender.send('selected-file', files)
  })
})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58631159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档