Swift 原生文件对话框

license macOS Linux Windows

一个围绕流行的 mlabbe/nativefiledialog 库(由 Michael Labbe 编写)的精简 Swift 封装。

原生文件对话框是一个小巧、整洁的 C 语言库,可以移植地调用原生文件打开、文件夹选择和保存对话框。只需编写一次对话框代码,即可在所有支持的平台上弹出原生对话框。避免链接像 wxWidgets 和 qt 这样的大型依赖项。

特性

用法

单个文件对话框

// open single file dialog without filters
let result = NFD.OpenDialog()
    
switch result {
case let .success(path):
    if let path = path {
        // use path
    } else {
        // user canceled
    }
case let .failure(error):
    // an error has occured
}

macOS 演示

您可以在 /Apps/NFD-Demo/NFD-Demo.xcodeproj 中找到 macOS 演示应用程序

NFD-Demo

文件过滤器语法

每个文件对话框 API 中都有一种文件过滤形式,但没有一致的支持方式。NFD 提供对按扩展名组过滤文件的支持,并为其扩展名提供自己的描述(如果适用)。

通配符过滤器始终添加到每个对话框中。

示例

txt 默认过滤器用于文本文件。下拉菜单中有一个通配符选项。

png,jpg;psd 默认过滤器用于 png 和 jpg 文件。第二个过滤器可用于 psd 文件。下拉菜单中有一个通配符选项。

nil 仅通配符。

版权和鸣谢

版权所有 © 2014-2019 Frogtoss Games, Inc. 文件 LICENSE 涵盖此 repo 中的所有文件。

原生文件对话框,作者 Michael Labbe mike@frogtoss.com

Tomasz Konojacki,贡献了 microutf8

Denis Kolodin,贡献了 mingw 支持。

Tom Mason,贡献了 Zenity 支持。

支持

可以在付费协议下从原始作者处获得针对此工作的定向支持。

联系 Frogtoss Games.