2012-04-04 2 views
1

У меня есть приложение Objective-C, которое использует ScriptingBridge для управления Safari. Это работает, но у меня возникли проблемы с написанием кода для новой возможности - сообщить Safari о открытии URL-адреса в новом окне. Вот AppleScript, который делает то, что я хочу:Как использовать ScriptingBridge, чтобы сообщить Safari открыть URL-адрес в новом окне?

tell application "Safari" 
make new document at end of documents 
set URL of document 1 to "http://www.apple.com/" 
end tell 

и вот что я надеялся, что эквивалентный код с помощью ScriptingBridge:

NSString *appName = @"com.apple.Safari"; 
safariApp = [SBApplication applicationWithBundleIdentifier:appName]; 

SafariDocument *doc = [[[safariApp classForScriptingClass:@"document"] alloc] init]; 
[[safariApp documents] addObject:doc]; 
doc.path = @"http://www.ford.com"; 

Когда я выполняю последний код, Safari открывает новое окно, но в окне отображается моя домашняя страница, а не www.ford.com.

Что случилось?

ответ

0

Вот решение:

NSDictionary *theProperties = [NSDictionary dictionaryWithObject:@"http://www.ford.com" forKey:@"URL"]; 
SafariDocument *doc = [[[safariApp classForScriptingClass:@"document"] alloc] initWithProperties:theProperties]; 
[[safariApp documents] addObject:doc]; 
[doc release];