【问题标题】:New tab in Safari window from Cocoa and Scripting Bridge来自 Cocoa 和 Scripting Bridge 的 Safari 窗口中的新选项卡
【发布时间】:2011-02-24 03:00:29
【问题描述】:

我正在尝试使用 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];
        }

如果“如果”有效,则第一部分创建一个新窗口。创建选项卡不会。这让我“-[SafariWindow addObject:]: unrecognized selector sent to instance...”,所以显然这不是这样做的方法。我无法弄清楚 Safari 中的窗口、文档和选项卡是如何相互关联的。非常感谢任何帮助。

谢谢,

雷神

【问题讨论】:

    标签: cocoa safari scripting-bridge


    【解决方案1】:

    啊哈!在窗口中创建选项卡是:

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

    【讨论】:

      猜你喜欢
      • 2019-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-07
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      • 2021-09-06
      相关资源
      最近更新 更多