2009-05-21 2 views
0

응용 프로그램의 창/문서 이름을 가져올 수있는 API가있는 코코아가 있습니까? 이미 사용 가능한 모든 응용 프로그램을 가져 오는 [[NSWorkspace sharedWorkspace] launchedApplication]을 얻었으므로 번들 이름이나 프로세스 ID에 액세스 할 수 있습니다. 다른 응용 프로그램의 창/문서 이름을 가져올 수 있도록 조사해야합니다.다른 응용 프로그램의 창/문서 이름을 가져 오는 API

답변

2

응용 프로그램에는 하나의 창만 있다고 가정하고 있습니다. 이것은 사실이 아닙니다. 응용 프로그램은 많은 창을 가질 수 있습니다.

자신의 앱의 경우 [NSApp windows]을 사용하여 배열을 가져옵니다. 특히 문서 창은 ask the document controller입니다.

다른 앱의 경우 해당 창을 보려면 Accessibility 또는 CGWindowList를 사용하십시오. 모든 응용 프로그램이 문서 기반이 아니고 모든 문서 기반 응용 프로그램이 NSDocument를 기반으로하는 것은 아니기 때문에 문서 창을 요청하는 간단한 방법은 없습니다.

+0

내게 필요한 옵션은 내가 찾고있는 링크입니다. 구체적으로 말하자면, 그것은 저에게 효과적입니다. NSDocument 기반 앱인 키 문서/키 윈도우 이름을 잡고 싶습니다. 하지만 궁금 해서요, NSDocument 기반이 아닌 응용 프로그램의 창에 대한 정보를 얻을 수있는 방법이 있습니까? – John

+0

접근성은 모든 애플리케이션에서 작동합니다. 문제는 다른 창에서 문서 창을 말할 수 없기 때문에 모든 응용 프로그램의 창을 모두 제공한다는 것입니다. kAXFocusedWindowAttribute는 핵심 윈도우이지만 항상 문서 창이있는 것은 아닙니다. 예를 들어 열린 패널, 저장 패널, 인쇄 패널, 경고 패널 또는 정보 패널 일 수 있습니다. –

+0

(CS4와 같은 앱에 특별한 테스트를하고 싶어도 사용할 수는 없지만 CS4 앱은 Spaces와 호환되지 않기 때문에 접근성이 떨어질 수 있습니다.) –

관련 문제