【发布时间】:2021-08-29 16:16:10
【问题描述】:
我已将 NSView 子类化以接收一个已删除的文件夹以获取其 URL。 我通过访问我的自定义 NSView 类中设置的属性来获取我的 ViewController 类的 URL。
import Cocoa
class DropView: NSView {
var droppedURL : URL!
override func draw(_ dirtyRect: NSRect) {
super.draw(dirtyRect)
// Drawing code here.
}
public required init?(coder: NSCoder) {
super .init(coder: coder)
registerForDraggedTypes([NSPasteboard.PasteboardType.fileURL])
}
public override func draggingEntered(_ sender: NSDraggingInfo) -> NSDragOperation {
return NSDragOperation.copy
}
public override func draggingUpdated(_ sender: NSDraggingInfo) -> NSDragOperation {
NSDragOperation.copy
}
public override func performDragOperation(_ sender: NSDraggingInfo) -> Bool {
let pboard = sender.draggingPasteboard
let urlString = pboard.string(forType: NSPasteboard.PasteboardType.fileURL)
let folderURL = URL(string: urlString!)
print(folderURL)
droppedURL = folderURL
return true
}
}
当一个文件夹被放到我的 NSView 上并且一个 URL 被成功捕获时,如何让我的 ViewController 知道?除了发布通知还有其他方法吗?
【问题讨论】:
标签: swift macos drag-and-drop nsview