可可如何知道哪个窗口是前景

时间:2010-12-23 00:58:43

标签: cocoa nsopenpanel

在Mac OS X上有与GetForegroundWindow类似的内容吗?

我有两个应用程序窗口(基于NSDocument)和一个命令行我想从命令行工具显示NSOpenPanel,并希望使其成为基于NSDocument的应用程序的模型,但没有它的windowref?

1 个答案:

答案 0 :(得分:2)

你想要的东西有一些问题。

首先,Mac上的应用程序没有窗口引用。应用程序可以具有任意数量的窗口。其次,在Mac OS X中访问其他进程的窗口是有限的。有一些API以不同的方式访问它们。无论如何,引用另一个应用程序的窗口将不允许你为该应用程序抛出模态对话框。

您想要的是让命令行应用与前台应用进行通信,以告诉它显示打开的面板。您可以建立自己的通信协议(例如通过分布式对象),也可以使用Apple Events / AppleScript来回通信。