我正在观察NSWorkspaceDidDeactivateApplicationNotification通知,以获取刚刚失去焦点的应用程序。我最终得到了一个NSRunningApplication实例,你可以从通知对象的userInfo字典键 - NSWorkspaceApplicationKey获得它。
我原以为我可以从通知中获取应用程序的主窗口,但我不知道从哪里开始,因为NSRunningApplication似乎非常有限。任何帮助将不胜感激。
BTW - 我正在使用MacRuby,但答案不需要在MacRuby中。
由于
答案 0 :(得分:5)
答案 1 :(得分:2)
获取其他应用程序的主窗口非常困难;他们甚至不能保证是可可!它们可以是Carbon或Java,或Qt,或Mono ......所以除非你做一个黑客攻击,否则你无法获得另一个应用程序的NSWindow。您可以尝试Accessibility API独立于所使用的框架获取其他应用程序的窗口信息等,但它不是那么容易使用。
答案 2 :(得分:1)
除非应用程序选择通过AppleScript支持或其他方式参与IAC,否则您只需触摸其窗口或您自己的堆空间之外的任何其他内容。