[英]Electron : using showOpenDialog allows files to be chosen on Linux & Win10 but why can't I choose file on MacOS?
我正在使用以下代碼(在 Linux 和 Win10 上取得了巨大成功)到 select 一個文件(並最終讀取其內容)。
這是在我的 main.js 中,並在 Linux 和 Win10 上彈出一個對話框,並允許我選擇一個文件。
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 的 Mac Mini 上,我看到以下內容:
請注意,我可以select 一個文件夾,但我不能 select 任何文件(它們是灰色和禁用的)。
我已經檢查了https://electronjs.org/docs/api/dialog中的選項,但我沒有看到需要為 MacOS 設置任何其他選項以允許選擇文件。 你知道為什么會這樣嗎?
注意:當我寫這篇文章時,我注意到代碼中的一些東西最終成為了解決方案。 但是,由於 SO 說您可以發布一個尚未被問到的問題的答案,並且因為這是一個有趣的問題,所以我決定發布並回答。
在盯着文檔很長一段時間后,我注意到了這個問題。 這是非常微妙的。 這是文檔中的重要部分:
哎呀! 屬性值是openFile
而不是 openFile s 。
紅鯡魚的事實是,這在 Linux 和 Win10 上確實可以正常工作(使用錯誤的屬性值)。
這是固定代碼:
ipc.on('open-file-dialog', function (event) {
dialog.showOpenDialog({
properties: ['openFile'],
defaultPath: specialFoldersPath,
}, function (files) {
if (files) event.sender.send('selected-file', files)
})
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.