У меня проблемы с попыткой выполнить функцию анимации, которая хранится в классе ViewController, после того, как пользователь перетащил файл.
Это код анимации в моем классе ViewController (который отлично работает, если вызывается из того же класса)
class ViewController: NSViewController {
func cancelAnim() {
CANCELanimationView = AnimationView(animation: Animation.named("cancel"))
CANCELanimationView.frame = CGRect(x: 103, y: 196, width: 45, height: 45)
CANCELanimationView.contentMode = .scaleAspectFill
view.addSubview(CANCELanimationView)
CANCELanimationView.play()
}
}
И вот где он должен выполняться:
class DragContainer: NSView {
let mainVC = ViewController()
override func performDragOperation(_ sender: NSDraggingInfo) -> Bool {
guard let pasteboard = sender.draggingPasteboard.propertyList(forType: NSPasteboard.PasteboardType(rawValue: "NSFilenamesPboardType")) as? NSArray,
let _ = pasteboard[0] as? String
else { return false }
let transferRef = userDef.string(forKey: "trasferMethod")
let trasferRefURL = URL(fileURLWithPath: transferRef!)
for files in pasteboard {
let fileURLs = URL(fileURLWithPath: files as! String)
print("--> \(files)")
let endURL = trasferRefURL.appendingPathComponent(fileURLs.lastPathComponent)
if fileURLs.hasDirectoryPath == true {
_ = mainVC.contentsOf(folder: fileURLs.absoluteURL)
} else {
try? FileManager.default.copyItem(at: fileURLs.absoluteURL, to: endURL)
}
}
self.layer?.backgroundColor = .clear
self.layer?.borderWidth = 0
mainVC.cancelAnim() // <-- My Animation Function
return true
}
}
В любом случае, поступая таким образом, я получаю следующую ошибку:
2020-05-05 17: 40: 31.158924 + 0200 Effektor [86633: 18569343] *** Отмена перетаскивания из-за исключения 'NSInternalInconsistencyException' (причина '- [NSNib _initWithNibNamed: bundle: options:] не удалось загрузить nibName: Effektor.ViewController в bundle (null).') была поднята во время сеанса перетаскивания
Я использую Swift 4 - macOS