美文网首页
Swift 里的 Drag-Drop

Swift 里的 Drag-Drop

作者: 张嘉夫 | 来源:发表于2017-01-05 11:05 被阅读174次

(Swift 3, Xcode 8b6, OSX 10.11)

苹果建议过去 pasteboard 类型的形式不应该再用了,要尽可能使用 UTIs - 更好的版本是

self.register(forDraggedTypes: [kUTTypeURL as String])

这表示你接收来自 Finder 的所有文件类型的拖拽。

因为 NSImage.imagePasteboardTypes 已经被弃用,并且没有替代品,就应该在 draggingEntered 里管理过滤:

override func draggingEntered(_ sender: NSDraggingInfo) -> NSDragOperation {
        let pasteboard = sender.draggingPasteboard()
        let filteringOptions = [NSPasteboardURLReadingContentsConformToTypesKey:NSImage.imageTypes()]
        if pasteboard.canReadObject(forClasses: [NSURL.self], options: filteringOptions) {
                return NSDragOperation.copy
        }      
        return NSDragOperation() //也可以是: []
}

(使用 NSPasteboardURLReadingContentsConformToTypesKey 可以参考@TroutDev的教程

相关文章

  • Swift 里的 Drag-Drop

    (Swift 3, Xcode 8b6, OSX 10.11) 苹果建议过去 pasteboard 类型的形式不应...

  • 2020-03-18

    https://material.angular.io/cdk/drag-drop/api

  • Angular cdk 学习之 drag-drop

    Angualr drag-drop里面的功能能让我们非常方便的处理页面上视图的拖拽(自由拖拽、列表排序拖拽、...

  • macOS 开发 - 讨论 drag-drop

    文章来源:苹果官方文档 介绍拖放 Cocoa 让我们能够实现时髦高雅的拖放功能,在应用内部或者在应用之间。这个编程...

  • OS X 中的拖拽操作

    Drag-Drop Drag/Drop拖拽操作已经成为OS X用户界面的一部分.例如你可以从Finder中将文件拖...

  • SWIFT_VERSION '3.0' is unsupport

    把项目工程和Pods工程里的Swift Language Version里的Swift版本号都改了

  • Swift 进阶

    swift新元素 柯里化(Currying) Swift 里可以将方法进行柯里化(Currying),这是也就是把...

  • swift学习笔记(OC与Swift混编)

    在项目里交叉使用Swift和OC Swift与OC的兼容性使得你可以在项目里使用Swift+OC的方式编写应用程序...

  • swift 集合类型

    标签(空格分隔): swift array dictionary zybuluo Swift 语言里的数组和字典中...

  • Swift - Button,Label

    Swift-Button的常用 关于Button的一些类型 Swift里Label的使用

网友评论

      本文标题:Swift 里的 Drag-Drop

      本文链接:https://www.haomeiwen.com/subject/cqfzvttx.html