在我的 Mac 应用程序中,如何使用 SwiftUI 按钮打开本地 PDF 文件?
In my Mac app, how can I open a local PDF file using a SwiftUI button?
在我的 Mac 应用程序中,我想在点击按钮时通过新视图显示本地 PDF 文件。 Whosebug post () 显示了如何使用 UIViewRepresentable 为 iOS 应用程序执行此操作,但这不适用于 Mac 应用程序。
macOS 11,iOS14
自 macOS 11 / iOS 14 以来,QuickLook 预览有一个原生的 SwiftUI 视图修饰符。您可以将 URL 的绑定设置为您的 PDF 文件(或任何其他可以显示在 QuickLook 中)。然后系统呈现文件。如果绑定值为 nil,则预览将不会显示或将被关闭(如果当前显示)。
.quickLookPreview(_ item: Binding<URL?>)
这个答案只是为了向上面mw_906的答案添加更多信息。我创建了一个名为 UserGuide.pdf 的文件并将其放入我的应用程序包中。我的 ContentView 文件的语法是
import SwiftUI
import QuickLook
struct ContentView: View {
@State var userGuideUrl: URL?
Button(action: {
userGuideUrl = Bundle.main.url(forResource: "UserGuide", withExtension: "pdf")
} ) {
Text("UserGuide")
}
.help("This button displays the User Guide.")
.quickLookPreview($userGuideUrl)
}
}
既然 Apple 提供了如此简单的文件显示方式,我鼓励所有 Apple 开发人员使用它来为他们的应用程序添加用户指南和其他有用的文档。
在我的 Mac 应用程序中,我想在点击按钮时通过新视图显示本地 PDF 文件。 Whosebug post (
macOS 11,iOS14
自 macOS 11 / iOS 14 以来,QuickLook 预览有一个原生的 SwiftUI 视图修饰符。您可以将 URL 的绑定设置为您的 PDF 文件(或任何其他可以显示在 QuickLook 中)。然后系统呈现文件。如果绑定值为 nil,则预览将不会显示或将被关闭(如果当前显示)。
.quickLookPreview(_ item: Binding<URL?>)
这个答案只是为了向上面mw_906的答案添加更多信息。我创建了一个名为 UserGuide.pdf 的文件并将其放入我的应用程序包中。我的 ContentView 文件的语法是
import SwiftUI
import QuickLook
struct ContentView: View {
@State var userGuideUrl: URL?
Button(action: {
userGuideUrl = Bundle.main.url(forResource: "UserGuide", withExtension: "pdf")
} ) {
Text("UserGuide")
}
.help("This button displays the User Guide.")
.quickLookPreview($userGuideUrl)
}
}
既然 Apple 提供了如此简单的文件显示方式,我鼓励所有 Apple 开发人员使用它来为他们的应用程序添加用户指南和其他有用的文档。