Нахождение переднего окна Safari с помощью ScriptingBridge и Objective-C

Я пытаюсь получить URL самого переднего активного окна Safari (Safari 5.2 работает в Mountain Lion Developer Preview 2) через ScriptingBridge, но не могу найти какое-либо свойство, чтобы определить, является ли окно передним.

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

Это не работает - если у меня есть два открытых окна Safari, оба visible,

Ни один не использует index собственность SafariWindow ни порядок массива windows.

Существует действие Automator под названием "Получить текущую веб-страницу из Safari", которое действительно работает, поэтому оно должно быть возможным, но я не понимаю, как это сделать.

2 ответа

Странно, вы говорите, что порядок windows Массив не помог, потому что он должен: по определению, "первое" окно является передним. Кроме того, окна Safari не имеют URL-адресов; у них есть вкладки, которые имеют URL-адреса. Поэтому все, что вам нужно, это:

safari.windows[0].currentTab.URL

Вы можете использовать яблочный скрипт

tell application "Safari" to get URL of front document
Другие вопросы по тегам