2012-03-30 19 views
1

查找前Safari窗口我試圖通過ScriptingBridge獲取最前面的活動Safari窗口(Safari 5.2在Mountain Lion Developer Preview 2中運行)的URL,但可以'找到任何屬性來確定窗口是否在前面。使用ScriptingBridge和Objective-C

SafariApplication *safari = [SBApplication applicationWithBundleIdentifier:@"com.apple.Safari"]; 
for (SafariWindow *window in safari.windows) { 
    if ([window visible]) { 
     // Top most, active window? 
    } 
} 

這不工作 - 如果我有兩個打開Safari窗口,都是visible

既不使用SafariWindowindex屬性也不使用windows數組的順序。

有一個名爲「從Safari獲取當前網頁」的Automator操作,確實是工作,所以它應該是可能的,但我看不出如何。

回答

0

您可以使用AppleScript的

tell application "Safari" to get URL of front document 
+0

是的,但事情是,我需要通過腳本橋和Objective-C來完成。 – 2012-03-30 12:54:51

+0

你可以使用NSAppleScript類。 – 2012-03-31 06:36:07

0

很奇怪,你說windows排列的順序沒有幫助,因爲它應該:顧名思義,「第一」窗口最前面的一個。另外,Safari窗口沒有​​URL;他們有包含網址的標籤。因此,所有你需要的是:

safari.windows[0].currentTab.URL