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

Posted

技术标签:

【中文标题】OS X - 如何检测应用程序何时在登录时以隐藏状态启动?【英文标题】:OS X - How to detect when app got launched in hidden state at Login? 【发布时间】:2015-10-17 00:18:54 【问题描述】:

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

当应用程序作为登录项启动时,一些用户选择通过选中用户和组控制面板的登录项中的“隐藏”选项来隐藏此启动窗口。

虽然此隐藏选项有效地隐藏了启动窗口,但它也会隐藏我的应用程序显示其窗口的任何进一步尝试,除非它使自己成为前端(活动)应用程序,这通常是不希望的,因为性质这个应用程序的。

因此,我需要了解我的应用程序是否以这种隐藏模式启动,以便它可以短暂地将自身置于最前面。

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

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

【问题讨论】:

在您的 applicationDidFinishLaunching 方法中,检查 [NSApp isHidden] 是否回答了您的问题? 如果您需要了解您的应用是否作为登录项启动,请参阅here。 【参考方案1】:

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

【讨论】:

以上是关于OS X - 如何检测应用程序何时在登录时以隐藏状态启动?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 6+ 上检测用户何时强制隐藏 iPad 上的键盘

如何使用 OS X MusicPlayer 知道 MIDI 文件何时完成

Qt 4.8 - 在 mac-mini (OS X Lion) 上检测 sd 卡的插入和移除

检测 OS X 上的 iCloud 可用性变化

如何在 Mac OS X 上的 QMenubar 中隐藏服务项目?

如何检测 OS X 应用程序是不是已经启动