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

时间:2019-03-13 17:17:32

标签: swift macos cocoa nsviewcontroller nsapplication-delegate

我实现了tmux new-session -s name方法tmux new-session -s name & <--- Completely messes up the tmux session nohup tmux new-session -s name & <---- Doesn't work too 以获取双击启动我的macOS应用程序(Swift 4.x)的文件的名称。但是,似乎在NSApplicationDelegate之后调用了此方法,这是我所有初始化代码都发生的地方。有没有一种方法可以在func application(_ sender: NSApplication, openFile filename: String) -> Bool类的ViewController viewDidLoad()中获取文件名,以便我可以在初始化代码中直接使用该文件名?

更新:

现在,根据此链接对Swift 4.2的建议,我现在可以将数据从viewDidLoad()传递到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

因此,我的问题仍然是如何直接在AppDelegate中获取文件名或如何通过ViewController获取文件名,以及如何在以下情况下将其传递到ViewDidLoad()中: application(_, sender: NSApplication, openFile filename: String) -> Bool被调用。

1 个答案:

答案 0 :(得分:0)

解决了我的问题。我没有在ViewController中执行初始化代码,而是在AppDelegate applicationDidFinishLaunching中实现了代码,以便可以在启动应用程序时以及在第一个事件发生之前执行初始化。我相信对于AppDelegate处理应用程序初始化而言,这仍然是更合适的做法。此代码调整既解决了在ViewControllerAppDelegate之间传递数据的需求,又解决了在application(_, sender: NSApplication, openFile filename: String) -> Bool之后调用ViewDidLoad()的问题。