2009-05-21 7 views
0

アプリケーションのウィンドウ/ドキュメント名を取得できるAPIはココアにありますか?利用可能なすべてのアプリケーションを取得するためにすでに[[NSWorkspace sharedWorkspace] launchedApplication]を取得しているので、バンドル名またはプロセスIDにアクセスできます。私は他のアプリケーションのウィンドウ/ドキュメント名を得ることができるように調べるべきです。他のアプリケーションのウィンドウ/ドキュメント名を取得するAPI

答えて

2

アプリケーションには1つのウィンドウしかないと仮定しています。本当じゃない;アプリケーションは多くのウィンドウを持つことができます。

自分のアプリの場合は、[NSApp windows]を使用して配列を取得します。ドキュメントウィンドウの場合は、具体的にはask the document controllerです。

他のアプリの場合は、AccessibilityまたはCGWindowListを使用してウィンドウを確認してください。すべてのアプリケーションがドキュメントベースではなく、すべてのドキュメントベースのアプリケーションがNSDocumentに基づいているわけではないので、ドキュメントウィンドウを求める簡単な方法はありません。

+0

アクセシビリティは、私が探しているものです。リンクに感謝します。 具体的には、それは私のために働いています、私はちょうどNSDocumentベースのアプリケーションであるキードキュメント/キーウィンドウ名をつかみたいです。しかし、ちょっと不思議ですが、NSDocumentベースではないアプリケーションでウィンドウに関する情報を得る方法はありますか? – John

+0

アクセシビリティは、すべてのアプリケーションで機能します。問題は、他のウィンドウからドキュメントウィンドウを伝えることができないため、各アプリケーションウィンドウのすべてを提供することです。 kAXFocusedWindowAttributeはキーウィンドウですが、必ずしもドキュメントウィンドウではありません。オープンパネル、保存パネル、印刷パネル、アラートパネル、またはAboutパネルなどです。 –

+0

(CS4などのアプリケーションに特別なテストをしたいと思うかもしれませんが、私はそれらを使用しませんが、CS4アプリケーションはSpacesと互換性がないので、アクセシビリティで失敗するかもしれません) –

関連する問題