Как использовать ScriptingBridge, чтобы сообщить Safari открыть URL-адрес в новом окне?
У меня есть приложение Objective-C, которое использует ScriptingBridge для управления Safari. Это работает, но у меня возникают проблемы при написании кода для новой возможности - сказать Safari открыть URL в новом окне. Вот AppleScript, который делает то, что я хочу:
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.
В чем дело?
1 ответ
Вот решение:
NSDictionary *theProperties = [NSDictionary dictionaryWithObject:@"http://www.ford.com" forKey:@"URL"];
SafariDocument *doc = [[[safariApp classForScriptingClass:@"document"] alloc] initWithProperties:theProperties];
[[safariApp documents] addObject:doc];
[doc release];