OS X - 如何检测应用程序何时在登录时以隐藏状态启动?

OS X - How to detect when app got launched in hidden state at Login?

我的后台应用程序(LSUIElement 模式)在启动时短暂显示 window,让用户知道它已启动。

当应用程序作为登录项启动时,一些用户选择隐藏此启动 window,方法是在用户和组控制面板的登录项中选中 "Hide" 选项。

虽然此隐藏选项有效地隐藏了启动 window,但它也隐藏了我的应用程序显示其 window(s) 的任何进一步尝试,除非它使自己成为前端(活动)应用程序,由于此应用的性质,通常不需要这样做。

因此,我需要了解我的应用程序是否在这种隐藏模式下启动,以便它可以短暂地显示自己。

(我不喜欢在启动时 总是 激活应用程序,因为它会导致轻微的闪烁,我希望在正常(即未隐藏)启动时避免这种情况。)

我也检查过 Detect that os x app was launched as login item?,但由于 applicationWillBecomeActive: 根本不会为 LSUIElement 应用程序调用,除非它们自行激活,这对我没有帮助。

在您的 applicationDidFinishLaunching 方法中,选中 [NSApp isHidden]。