- macOS SwiftUI 技巧之图片文件拖拽到app并显示(教
- macOS SwiftUI 开源组件之支持拖拽文件组件(教程含源
- macOS SwiftUI 开源项目之 文档类显示App tri
- SwiftUI 啤酒百科APP之网络请求json和无限载入刷新更
- macOS SwiftUI AppStore上线源码之授权许可
- SwiftUI macOS和iPad精品项目之天气完整App(项
- SwiftUI Swift 初学者必读文章大全
- macOS SwiftUI 精品布局之经典工具类APP布局(教程
- macOS SwiftUI 内功之原生实现TextEditor点
- xcode9拖拽图片,imageNamed:就尴尬了
实战需求
macOS SwiftUI 技巧之图片文件拖拽到app并显示
本文价值与收获
看完本文后,您将能够作出下面的界面
截屏2021-01-20 上午10.26.21.png Jietu20210120-102710.gif看完本文您将掌握的技能
- guard let itemProvider = info.itemProviders(for: [(kUTTypeFileURL as String)]).first else { return false }
- URL(dataRepresentation: data, relativeTo: nil)
- NSImage(contentsOf: url)!
- Image(nsImage:NSImage(contentsOf: url)!)
基础知识
onDrop(of:delegate:)
使用由您提供的委托控制的行为定义拖放操作的目标。
func onDrop(of supportedContentTypes: [UTType], delegate: DropDelegate) -> some View
返回值
为指定类型的拖动操作提供放置目标的视图。
参量
-
supportedContentTypes
统一的类型标识符,用于描述该视图可以通过拖放接受的内容类型。如果拖放操作不包含任何受支持的类型,则此放置目标不会激活并且不会更新。isTargeted -
delegate
符合协议的类型。使用委托时,您可以全面控制放置行为。DropDelegate
参考
- func onDrag(() -> NSItemProvider) -> some View
激活此视图作为拖放操作的源。 - func onDrop(of: [UTType], isTargeted: Binding<Bool>?, perform: ([NSItemProvider]) -> Bool) -> some View
定义拖放操作的目标,该操作使用指定的闭包来处理放置的内容。 - func onDrop(of: [UTType], isTargeted: Binding<Bool>?, perform: ([NSItemProvider], CGPoint) -> Bool) -> some View
定义拖放操作的目标,该操作使用指定的闭包来处理放置的内容。 - func itemProvider(Optional<() -> NSItemProvider?>) -> some View
提供一个闭包,该闭包出售要用于特定数据元素的拖动表示形式。
网友评论