来自Cocoa和Scripting Bridge的Safari窗口中的新选项卡

时间:2010-05-26 10:44:33

标签: cocoa safari scripting-bridge

我正在尝试使用Scripting Bridge在Cocoa的Safari窗口中创建一个新选项卡。我的代码看起来像这样:

SafariApplication *safari = [SBApplication applicationWithBundleIdentifier:@"com.apple.Safari"];

    if ([[safari windows] count] == 0)
        {
            NSLog(@"No window found. Creating a new one.");
            SafariDocument *newDoc = [[[safari classForScriptingClass:@"document"] alloc] init];
            [[safari windows] addObject:newDoc];
            [newDoc release];
        }
        else
        {
            NSLog(@"Seems we already have a safari window");
            SafariTab *newTab = [[[safari classForScriptingClass:@"tab"] alloc] init];
            [[[safari windows] objectAtIndex:0] addObject:newTab];
            [newTab release];
        }

第一部分如果“if”有效,则创建一个新窗口。创建选项卡不会。这让我“ - [SafariWindow addObject:]:无法识别的选择器发送到实例...”,显然这不是这样做的方式。我无法弄清楚Safari中的窗口,文档和标签是如何相互关联的。非常感谢任何帮助。

谢谢,

托尔

1 个答案:

答案 0 :(得分:2)

A-公顷!在窗口中创建选项卡是:

SafariTab *newTab = [[[safari classForScriptingClass:@"tab"] alloc] init];
[[[[safari windows] objectAtIndex:0] tabs] addObject:newTab];
[newTab release];