Electron showOpenDialog не уважает фильтр расширений на macOS - PullRequest
0 голосов
/ 10 января 2019

У меня есть приложение Electron, и я пытаюсь открыть диалоговое окно выбора файлов и ограничить пользователя только выбором одного файла с некоторым пользовательским расширением (назовите его .foo).

В macOS (Mojave, если это имеет значение), используя Electron ^ 3.0.0, это:

dialog.showOpenDialog({ properties: ['openFile'], filters: [{name: 'Foo
Files', extensions: ['foo']}] })`

Откроет собственный инструмент выбора файлов, который позволяет пользователю выбирать только каталоги.

Это:

dialog.showOpenDialog({ properties: ['openFile'], filters: [{extensions: 
 ['foo']}] })

Открывает встроенный инструмент выбора файлов, который позволяет мне выбрать один файл, но позволяет выбирать файлы с любым расширением.

Как я могу открыть диалоговое окно выбора файлов в macOS, которое ограничивает пользователя в выборе одного файла с определенным расширением?

1 Ответ

0 голосов
/ 21 января 2019

Объект фильтра файлов не будет работать без свойства: name и extensions. Итак, первый звонок по вашему вопросу должен работать без проблем:

dialog.showOpenDialog({ properties: ['openFile'], filters: [{name: 'Foo
Files', extensions: ['foo']}] })

Потому что, чтобы выбрать каталоги, вам нужно иметь openDirectory в массиве properties. Без этого свойства оно не должно позволять вам выбирать какой-либо каталог.

Вы проверили, выбрав какой-либо каталог? Когда вы пытаетесь выбрать какой-либо каталог (дважды щелкните по нему или щелкните по кнопке «Открыть» в системном диалоговом окне кнопки), он не будет выделен, он откроет этот каталог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...