【问题标题】:Finder Share Extension: Getting a preview image from NSItemProviderFinder 共享扩展:从 NSItemProvider 获取预览图像
【发布时间】:2017-11-28 16:00:29
【问题描述】:

我正在创建一个在选择文件时使用的 Finder 共享扩展。我想显示您正在共享的文件的图像预览(例如,就像您在消息和 Twitter Finder 共享扩展中看到的那样)。

在我的共享扩展的视图控制器的 loadView 方法中,我正在这样做:

let item = self.extensionContext!.inputItems[0] as! NSExtensionItem
if let attachments = item.attachments as? [NSItemProvider] {
    if let attachment = attachments.first {

        attachment.loadPreviewImage(options: nil, completionHandler: { (item, error) in
            if error != nil {
                //handle error...
            } else if let img = item as? NSImage {
                //put image preview in my "share sheet"...
            }
        })

    }
}

问题是当我不断遇到错误情况时。我得到的错误是:

错误域=NSItemProviderErrorDomain 代码=-1000 “无法加载预览。” UserInfo={NSLocalizedDescription=无法加载预览。}

不管怎样,我能够成功调用 attachment.loadItem() 并使用该文件。但我现在并不关心对文件本身做任何事情,我只想要一个代表文件的缩略图,理论上这种方法应该给我......

有什么想法吗?

【问题讨论】:

    标签: swift macos cocoa finder macos-high-sierra


    【解决方案1】:

    我也有同样的情况。看了说明书,觉得是这个原因。

    “加载由项目提供者表示的项目的预览图像。”

    但是,项目提供者不必须提供预览。所以错误只是说项目提供者无法提供预览。你应该自己做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多