在SwiftUI中使用DropDelegate获取项目的URL

2022-01-28 09:34:32 标签 iosswiftxcodeswiftuiipados

我有一个符合DropDelegate的SwiftUI视图,工作正常,以便从macOS和iPadOS的其他应用程序接收图像,但在两个操作系统的行为是非常不同的:

struct ContentView: View {?
    var body: some View {
        MyView {?... }
            .onDrop(of: [.fileURL, .image], delegate: self)
    }
}

DropDelegate实现是:

extension ContentView: DropDelegate {?
   func performDrop(info: DropInfo) -> Bool {
      // Debug implementation
      if info.hasItemsConforming(to: [.image]) {?
         print("CONTAINS AN IMAGE")
      } else if info.hasItemsConforming(to: [.fileURL]) {?
         print("CONTAINS AN URL")
      }
   }
}

如果我在macOS的输出是包含一个URL,如果我在iPadOS的输出是包含一个图像。

问题是,我需要访问源URL的一些元数据(如creationDate),如果输出是一个UIImage,我不能访问creationDate。如何通过DropDelegate访问iPadOS/iOS上的源URL ?还是……我如何获得一个由DropDelegate提供的UIImage的creationDate ?

Xcode 13 | macOS 12 | iPadOS 15 | Swift 5。5 | SwiftUI 3。0

阅读全文

▼ 版权说明

相关文章也很精彩
推荐内容
更多标签
相关热门
全站排行
随便看看

错说 cuoshuo.com —— 程序员的报错记录

部分内容根据CC版权协议转载;网站内容仅供参考,生产环境使用务必查阅官方文档

辽ICP备19011660号-5

×

扫码关注公众号:职场神器
发送: 1
获取永久解锁本站全部文章的验证码