Skip to content

Commit d292644

Browse files
authored
[desktop_drop] Recursively searching for FlutterViewController during initialization (MixinNetwork#162)
1 parent bbd7964 commit d292644

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

packages/desktop_drop/macos/Classes/DesktopDropPlugin.swift

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,26 @@
11
import Cocoa
22
import FlutterMacOS
33

4+
private func findFlutterViewController(_ viewController: NSViewController?) -> FlutterViewController? {
5+
guard let vc = viewController else {
6+
return nil
7+
}
8+
if let fvc = vc as? FlutterViewController {
9+
return fvc
10+
}
11+
for child in vc.children {
12+
let fvc = findFlutterViewController(child)
13+
if fvc != nil {
14+
return fvc
15+
}
16+
}
17+
return nil
18+
}
19+
420
public class DesktopDropPlugin: NSObject, FlutterPlugin {
521
public static func register(with registrar: FlutterPluginRegistrar) {
622
guard let app = NSApplication.shared.delegate as? FlutterAppDelegate else { return }
7-
guard let vc = app.mainFlutterWindow.contentViewController else { return }
23+
guard let vc = findFlutterViewController(app.mainFlutterWindow.contentViewController) else { return }
824

925
let channel = FlutterMethodChannel(name: "desktop_drop", binaryMessenger: registrar.messenger)
1026
let instance = DesktopDropPlugin()

0 commit comments

Comments
 (0)