我必须在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
)。
我怎样才能抓住新论点?
对不起我的英文:(
答案 0 :(得分:2)
默认情况下,open(1)
命令行工具将切换到程序的现有实例。由于这不会调用程序的主入口点,因此将忽略参数。它们在程序启动时设置,如果要将其与其他命令行参数一起使用,则必须启动程序的新实例。
使用open -n
启动程序的新实例。即使另一个实例已存在,这也将启动一个新实例。