我正在寻找一种方法来确定第二个最前端的应用程序。这就是我的意思。第二面应用程序?
比方说,我按以下顺序启动三个应用程序:Xcode,Interface Builder和我的应用程序。如果我按下Command-Tab,我应该在切换台中看到四个应用程序:(从左到右)我的应用程序,Interface Builder,Xcode和Finder。
然后让我们说我切换到Finder。应用切换器中的新订单是:Finder,我的应用程序,Interface Builder和Xcode。
如果我然后切换回我的应用程序,那么订单现在是我的应用程序,Finder,Interface Builder和Xcode。
我正在寻找一个API,我可以调用它并在启动时获取Interface Builder是第二个最前端的应用程序,但是当我切换回它时,它现在是Finder。
如果它有所不同,我的应用程序实际上不会出现在应用程序切换器中,因为它将是一个代理应用程序(LSUIElement = YES)。
有没有可以做到这一点的API?根据NSWorkspace的说法,我发现的唯一选择是让计时器持续运行,以持续监控activeApplication是什么。除了在发布期间,这很有效。如果可能,我想在启动时知道第二个最前面的应用程序。
任何想法?
我猜Dock的使用持续监测方法,但你理论上可以退出Dock,看看是否导致订单争夺。如果即使Dock不能确定发布的顺序,那么至少你可以停止浪费时间尝试。 :) – 2017-04-19 00:41:02