如何在Mac上重新打开应用程序时获取命令行参数

时间:2013-04-06 07:56:44

标签: objective-c macos cocoa command-line-arguments

我必须在Mac OS X上编写一个应用程序,我想用命令行打开两个参数。 这很简单。我使用[[NSProcessInfo processInfo] arguments]获取参数。但是当我重新打开应用程序时,我需要获取新的参数。怎么做? ProcessInfo给了我第一次写的参数。 要清楚我做: open myapp.app --args -url1 http://apple.com -url2 /Desktop 所以我在ProcessInfo中有两个参数:url1和url2。

现在我想用另一个新参数重新打开这个应用程序(应用程序仍在后台工作): open myapp.app --args -url1 http://somethingelse.com -url2 /Desktop/NewLibrary 但是当我使用NSProcessInfo时,我有较旧的参数(http://apple.com/Desktop)。

我怎样才能抓住新论点?

对不起我的英文:(

1 个答案:

答案 0 :(得分:2)

默认情况下,open(1)命令行工具将切换到程序的现有实例。由于这不会调用程序的主入口点,因此将忽略参数。它们在程序启动时设置,如果要将其与其他命令行参数一起使用,则必须启动程序的新实例。

使用open -n启动程序的新实例。即使另一个实例已存在,这也将启动一个新实例。