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

标签 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 中窗口、文档和选项卡如何相互关联。非常感谢任何帮助。

谢谢

雷神

最佳答案

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

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

关于cocoa - 来自 Cocoa 和 Scripting Bridge 的 Safari 窗口中的新选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2912161/

相关文章:

objective-c - 如何构建Apple的Son ofgrab示例?

swift - 合并 View 而不是单独显示它们

html - Safari 在放大/缩小时会弄乱设计

html - 在 html 页面的开头添加垂直空间

cocoa - 如何使用 persistenID 通过脚本桥从 iTunes 获取特定的 iTunesTrack 实例?

ios - 使用脚本桥通过 iTunes 将文件从桌面应用程序发送到 iPad

cocoa - 编写 iTunes : playing single tracks 脚本

macos - NSFileManager 说文件不可写 Mac

cocoa - 基础命令行工具,来自参数的文件

macos - 如何显示圆形警报/信息窗口(类似于 os x 中更改声音时的警报)