通过NSRunningApplication实例获取应用程序的主窗口

Ali*_*olt 6 macos objective-c macruby

我正在观察NSWorkspaceDidDeactivateApplicationNotification通知,以获取刚刚失去焦点的应用程序.我最终得到了一个N​​SRunningApplication实例,你可以从通知对象的userInfo字典键 - NSWorkspaceApplicationKey获得它.

我想我可以从通知中获取应用程序的主窗口,但我不知道从哪里开始,因为NSRunningApplication看起来非常有限.任何帮助,将不胜感激.

BTW - 我正在使用MacRuby,但答案不需要在MacRuby中.

谢谢

Chu*_*uck 5

传统上,苹果公司对这类事情一直保持沉默.NSRunningApplication本身刚刚在10.6中引入,正如你所说,它有点受限.根据您的要求,答案可能在Accessibility框架中,也可能是CGWindow API.您可以使用NSRunningApplication中的processIdentifier将其与这些API进行匹配.