2014-01-23 3 views
0

앞에 모든 onther 찾기 창을시키지 않고 Finder에서 디렉토리를 열어이 애플 스크립트목적 상응 :

tell application "Google Chrome" to set index of window 1 to 1 
do shell script "open /Volumes" 

에서에 모든 파인더 창을시키지 않고 디렉토리를 엽니 다.

[[NSWorkspace sharedWorkspace] openURL:fileURL]; 

을하지만 다른 사람의 위에 모든 Finder 윈도우를 가져올 수있는 결함이 있습니다

현재 내가 사용하고 있습니다.

AppleScript와 동일한 동작을 어떻게 달성 할 수 있습니까?

답변

0

코코아가 원하는 기능을 제공하지 않으면 항상 NSAppleScript을 사용하여 Objective-C에서 애플 스크립트 코드를 실행할 수 있습니다.

+0

저는 AppleScript를 사용하지 않는 것을 알고있었습니다. –

+0

'NSWorkspace'가 모든 파인더 창에 초점을 맞추지 않고 단 1 개의 창을 여는 방법을 제공하지 않는다면 코코아로 할 수 있을지 의심 스럽습니다. 당신은 appescript에 의지하고 싶지 않다면 언제나 코드 삽입을 사용할 수 있지만, 그렇게 간단한 작업을하기에는 너무 과도한 것처럼 보입니다. – TheAmateurProgrammer

0

-[NSWorkspace openURL:]도 응용 프로그램에 activate 이벤트를 보내고 open 프로세스는 그렇지 않습니다.

LaunchServices API를 살펴 보는 것이 좋습니다. 그것은 모두 NSWorkspaceopen이 뒤에서 사용되지만, NSWorkspace의 제한된 API보다 더 많은 제어를 제공합니다.

-

p.s. ObjC에서 open (또는 다른 명령 줄 도구)을 호출해야한다면 Cocoa의 NSTask을 사용해야합니다. (AppleScript의 do shell script 명령은 NSTask의 [crappy]와 동일합니다.)