Получить имя файла, который запустил приложение в классе ViewController? - PullRequest
0 голосов
/ 13 марта 2019

Я реализовал NSApplicationDelegate метод func application(_ sender: NSApplication, openFile filename: String) -> Bool, чтобы получить имя файла, по которому дважды щелкнули, чтобы запустить мое приложение MacOS (Swift 4.x). Однако, похоже, что этот метод вызывается после ViewController viewDidLoad(), где происходит весь мой код инициализации. Есть ли способ получить имя файла в viewDidLoad() в классе ViewController, чтобы я мог использовать имя файла непосредственно в своем коде инициализации?

Обновление:

Теперь я могу передавать данные с AppDelegate на ViewController на основании предложения по этой ссылке для Swift 4.2:

https://stackoverflow.com/questions/15049924/passing-data-from-app-delegate-to-view-controllerhttps://stackoverflow.com/questions/15049924/passing-data-from-app-delegate-to-view-controller

Поэтому у меня остается вопрос: как получить имя файла непосредственно в ViewDidLoad() или как получить имя через application(_, sender: NSApplication, openFile filename: String) -> Bool и сделать его доступным для передачи в ViewController при вызове ViewDidLoad().

1 Ответ

0 голосов
/ 15 марта 2019

Решил мою проблему.Вместо выполнения кода инициализации в ViewController я реализовал код в AppDelegate applicationDidFinishLaunching, чтобы инициализация могла выполняться при запуске приложения и до того, как произойдет первое событие.Я считаю, что в любом случае AppDelegate является более правильной практикой для обработки инициализации приложения.Эта корректировка кода решает как необходимость передачи данных между ViewController и AppDelegate, так и проблему, которая вызывается application(_, sender: NSApplication, openFile filename: String) -> Bool после ViewDidLoad().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...