SwiftUiSharing for Swift 和 SwiftUI

在 iOS 和 iPadOS 上提供一个 SwiftUI 风格的 共享表单 (Sharing Sheet),在 macOS 上提供一个 共享菜单 (Sharing Menu),允许用户使用应用所运行设备上可用的 共享选项 (Sharing Options) 来共享数据。

支持

如果您觉得 SwiftUiSharing 有用,并且希望帮助支持其持续开发和维护,请考虑进行小额捐赠,尤其是在商业产品中使用它的情况下。

Buy Me A Coffee

正是通过像您这样的贡献者的支持,我才能继续免费构建、发布和维护高质量、文档完善的 Swift 包,例如 SwiftUiSharing

安装

Swift Package Manager (Xcode 11 及以上版本)

  1. 在 Xcode 中,选择 File (文件) > Add Package Dependency… (添加包依赖…) 菜单项。
  2. 在对话框中粘贴 https://github.com/Appracatappra/SwiftUiSharing.git
  3. 按照 Xcode 的指示完成安装。

为什么不是 CocoaPods、Carthage 或其他?

支持多个依赖管理器会使维护库的复杂性和所需时间呈指数级增长。

由于 Swift Package Manager 已与 Xcode 11(及更高版本)集成,因此它是未来最容易支持的选择。

iOS 示例

这是一个在 iOS/iPadOS 上使用 SwiftUiSharing 的示例

Button(action: {
    SharingSheet.openMarkdownPrintSheet(markdown: dataStore.allShoppingLists(asMarkdown:true), simpleText: dataStore.allShoppingLists(), fromX: 245.0, fromY: 32.0)
}) {
    Image(systemName: "square.and.arrow.up")
        .resizable()
        .foregroundColor(Color("AccentColor"))
}
.frame(width: 24.0, height: 24.0)
.help("Share your Shopping Lists")

在 iOS 上看起来是这样

在 iPadOS 上看起来是这样

macOS 示例

这是一个在 macOS 上使用 SwiftUiSharing 的示例

CommandGroup(replacing: .newItem){
 NSSharingService.sharingMenu(title: "Share Shopping List") {
     return MasterDataStore.SharedDataStore.allShoppingLists()
 }
 
 Divider()
 
 ...
}

在 macOS 上看起来是这样

文档

包 (Package) 包含所有功能的完整 DocC 文档