一个 macOS API,用于在将 PDF 数据导入到单个图像时,允许 UI 展示 PDF 页面选择器。
该 API 包括两个功能
NSResponder
扩展,允许从 PDF 数据或 PDF 文件中请求单个页面,以及一个用于配置页面选择器展示的拦截点。ImageWell
,一个 NSImageView
的子类,它拦截粘贴和拖放操作,并在需要时展示 PDF 页面选择器。在 Xcode 的 “File” 菜单中选择 “Add package…”,并将此仓库的 URL 粘贴到搜索栏中。然后在任何需要它的文件中 import PDFPagePicker
。
了解其工作原理的最佳方法是查看 https://github.com/Gabardone/PDFPagePickerTestApp.git 的测试应用程序,并研究它如何使用此软件包中的 API。
对于任何选项,如果默认的展示行为不符合您的需求,您可以随时在响应链中任何可以捕获调用的位置重写 NSResponder.presentPDFPagePicker
。
例如,假设您的应用程序在导入操作期间已获得 PDF 文件,并且您想要保存所选页面的图像(如果用户选择了任何页面)。您可以从响应链的任何组件(即协调过程的视图控制器)进行类似于以下的调用,并进行一些本地化
pickPDFPage(from: pdfFileURL, verb: "Import") { image in
save(image)
}
将其用作可编辑的 NSImageWell
的直接替代品。它还将确保将图像文件粘贴或拖放到 well 上时,将提取文件中的图像数据,而不是文件的图标。