Новая вкладка в окне Safari от Cocoa и Scripting Bridge - PullRequest
2 голосов
/ 26 мая 2010

Я пытаюсь создать новую вкладку в окне Safari из Какао, используя Scripting Bridge. Мой код выглядит примерно так:

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:]: нераспознанный селектор отправлен в экземпляр ...", так что, очевидно, это не способ сделать это. Я не могу понять, как окна, документы и вкладки связаны друг с другом в Safari. Любая помощь с благодарностью.

Спасибо

Thor

1 Ответ

2 голосов
/ 26 мая 2010

A-ха! Создание вкладки в окне:

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