1

我有一个使用 ScriptingBridge 来控制 Safari 的 Objective-C 应用程序。它可以工作,但是我在为新功能编写代码时遇到了麻烦——告诉 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。

怎么了?

4

1 回答 1

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];
于 2012-04-07T04:54:29.567 回答