知道用户是否启动了应用程序

时间:2012-09-17 18:27:24

标签: objective-c macos launch

好吧,这个标题可能看起来很奇怪,但请耐心等待。我有一个应用程序,可以由用户设置其首选项,以便在登录时启动。这意味着我有时可以期待用户启动应用程序(点击Dock / Finder等),但有时候系统会在登录时自动启动应用程序。

我希望在用户启动应用程序时显示一个窗口,但不会在用户自动启动时显示(因为我认为这会给用户带来痛苦)。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

虽然它可能取决于您打算如何自动启动应用程序,但您可以使用命令行参数来区分系统启动与用户启动。

因此,命令行启动可能是这样的:

MyApp -autoLaunch "Y"

要在Cocoa应用程序中解析命令行参数,您可以使用NSUserDefaults(是,you can!):

if( ![[NSUserDefaults standardUserDefaults] objectForKey:@"autoLaunch"] isEqualToString:"Y"] ) {
    // do something for user initiated launch
}

答案 1 :(得分:0)

我对你的问题没有确切的答案。但是,如果用户上次退出您的应用时窗口是否可见,我可以建议您的应用显示窗口吗?

这可能更符合Mac UI指南关于恢复应用和窗口的建议,并且符合用户的期望。

此外,将您的应用设置为在登录时启动的用户可能会理解关闭窗口并且下次没有恢复,或者让系统在登录期间也隐藏您的应用。