2016-09-05 3 views
0

:Safari의 모든 창 모든 탭에서 열려있는 URL을 모두 얻으려면 어떻게해야합니까? 나는 다음과 같이 열려있는 모든 탭의 URL을 반환 사파리에게 NSAppleScript을 사용하고

let script = NSAppleScript.init(source: "tell application \"Safari\" to get URL of every tab of every window") 
var errorInfo: NSDictionary? 
let eventDescriptor:NSAppleEventDescriptor = (script?.executeAndReturnError(&errorInfo))! 
print(eventDescriptor.stringValue) 

이상은 nil을 반환합니다. 현재 URL을 반환하라는 말을하면 효과가 있습니다.

"tell application \"Safari\" to return URL of front document as string" 

어떻게 모든 윈도우의 모든 탭에 열려있는 모든 URL을 얻으려면?

답변

0

결과는 문자열 목록을 나타내는 NSDescriptor가됩니다. 어느 쪽이든 당신 :

  1. 강제 변환은 다음 스위프트 (속임수) 문자열의 목록에 문자열을 분할 할 수있는에 적절한 텍스트 항목 구분 기호를 사용하여, 그것을 반환하기 전에 애플 스크립트에서 문자열 목록,
  2. 사용하십시오 두 개 이상의 중첩 된 루프를 사용하여 목록 설명자를 직접 푸는 방법 (지루한 경우) 또는
  3. 도랑 NSAppleScript을 사용하고 AppleScript-ObjC bridge을 대신 사용하십시오 (설정하는 데 약간의 노력이 있지만 훨씬 간단하고 사용하기가 가장 쉽습니다).
관련 문제