【问题标题】:UIDocumentInteractionController not available in Mac catalystUIDocumentInteractionController 在 Mac 催化剂中不可用
【发布时间】:2021-04-07 18:05:54
【问题描述】:

执行以下代码时可能会导致应用崩溃。

代码: self.documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:targetURL];

崩溃日志: 由于未捕获的异常“NSGenericException”而终止应用程序,原因:“UIDocumentInteractionController 不可用”

有没有解决这个问题或任何替代类?

【问题讨论】:

    标签: ios objective-c macos mac-catalyst uidocumentinteractioncontroller


    【解决方案1】:

    尽管文档说了什么,但它在 Catalyst 中不可用。

    您可以使用 AppKit 替代方案 (QLPreviewPanel) 进行探索,但您必须进行一些修改才能使其在 Catalyst 应用程序中运行: https://stackoverflow.com/a/32814132/1601849

    【讨论】:

    • 无法为 Mac 催化剂添加 QLPreviewPanel。检查developer.apple.com/documentation/quartz/…。如果有任何其他解决方案,请帮助我
    • 使用“QLPreviewController”完成。谢谢。
    • 太棒了!我以为有适用于 iOS 的 QuickLook,但找不到 QLPreviewController。很高兴这有效!
    【解决方案2】:

    如果您想保留与 OSX 10.5 的兼容性,可以进行以下检查:

    if UIDevice.current.systemName == "Mac OS X" {
       let version = Int (UIDevice.current.systemVersion.prefix (2)) ?? 10
       if version > 10 {
          self.documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:targetURL];
       } else {
          //do something
       }
    } else {
       self.documentInteractionController =[UIDocumentInteractionController interactionControllerWithURL:targetURL];
    
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-12-14
      • 2023-04-02
      • 2021-10-18
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 2020-02-26
      • 2020-08-03
      相关资源
      最近更新 更多