Выполнение функции из другого класса при выполненииDragOperation - Swift macOS - PullRequest
0 голосов
/ 05 мая 2020

У меня проблемы с попыткой выполнить функцию анимации, которая хранится в классе 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

...