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 卡的插入和移除