2010-05-26 9 views
2

Je suis en train de créer un nouvel onglet dans une fenêtre Safari de Cocoa en utilisant le pont de script. Mon code ressemble à ceci:nouvel onglet dans la fenêtre Safari du pont Cocoa et Scripting

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]; 
     } 

La première partie si le "si" fonctionne, en créant une nouvelle fenêtre. Créer l'onglet ne fonctionne pas. Cela m'amène "- [SafariWindow addObject:]: sélecteur non reconnu envoyé à l'instance ...", donc évidemment ce n'est pas la façon de le faire. Je n'arrive pas à comprendre comment les fenêtres, les documents et les onglets sont liés entre eux dans Safari. Toute aide est grandement appréciée.

Merci,

Thor

Répondre

2

A-ha! Création d'un onglet dans une fenêtre est:

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