获取在ViewController类中启动应用程序的文件的名称?

问题描述 投票:0回答:1

我实现了NSApplicationDelegate方法func application(_ sender: NSApplication, openFile filename: String) -> Bool来获取双击以启动我的macOS应用程序(Swift 4.x)的文件的名称。但是,似乎在ViewController viewDidLoad()之后调用此方法,这是我的所有初始化代码发生的地方。有没有办法在viewDidLoad()类中的ViewController中获取文件名,以便我可以直接在初始化代码中使用文件名?

更新:

我现在能够根据Swift 4.2链接的建议将数据从AppDelegate传递到ViewController

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()

swift macos cocoa nsviewcontroller nsapplication-delegate
1个回答
0
投票

解决了我的问题。我没有在ViewController中执行我的初始化代码,而是在AppDelegate applicationDidFinishLaunching中实现了代码,以便在应用程序启动时和第一个事件发生之前执行初始化。我认为无论如何这对AppDelegate处理应用程序初始化更合适。这个代码调整解决了在ViewControllerAppDelegate之间传递数据的需要,以及在application(_, sender: NSApplication, openFile filename: String) -> Bool之后调用ViewDidLoad()的问题。

© www.soinside.com 2019 - 2024. All rights reserved.