好吧,这个标题可能看起来很奇怪,但请耐心等待。我有一个应用程序,用户可以在其首选项中设置它以在登录时启动。这意味着我可以预期有时该应用程序将由用户启动(单击 Dock/Finder 等),但有时该应用程序将在登录时由系统自动启动。
我想在用户启动应用程序时显示一个窗口,而不是在自动启动时显示一个窗口(我想这对用户来说会很痛苦)。我怎样才能做到这一点?
好吧,这个标题可能看起来很奇怪,但请耐心等待。我有一个应用程序,用户可以在其首选项中设置它以在登录时启动。这意味着我可以预期有时该应用程序将由用户启动(单击 Dock/Finder 等),但有时该应用程序将在登录时由系统自动启动。
我想在用户启动应用程序时显示一个窗口,而不是在自动启动时显示一个窗口(我想这对用户来说会很痛苦)。我怎样才能做到这一点?
尽管这可能取决于您打算如何自动启动应用程序,但您可以使用命令行参数来区分系统启动与用户启动。
所以,命令行启动可能是这样的:
MyApp -autoLaunch "Y"
要解析 Cocoa 应用程序中的命令行参数,您可以使用NSUserDefaults
(是的,您可以!):
if( ![[NSUserDefaults standardUserDefaults] objectForKey:@"autoLaunch"] isEqualToString:"Y"] ) {
// do something for user initiated launch
}
我对你的问题没有确切的答案。但是,如果用户上次退出您的应用程序时窗口是可见的,我是否可以建议您的应用程序显示该窗口?
这可能更符合 Mac UI 指南关于恢复应用程序和窗口的建议,并且在用户的预期之内。
此外,将您的应用程序设置为在登录时启动的用户可能会理解关闭窗口并且下次不恢复它,或者让系统在登录期间也隐藏您的应用程序。