2010-05-26 4 views
2

Scripting Bridge를 사용하여 Cocoa의 Safari 창에 새 탭을 만들려고합니다. 내 코드는 다음과 같은 :Cocoa 및 Scripting Bridge의 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 :] : 인스턴스로 보낸 인식 할 수없는 선택기 ..."를 가져옵니다. 그렇게하는 것이 분명하지 않습니다. Safari에서 창, 문서 및 탭이 서로 어떻게 연관되어 있는지 알 수 없습니다. 어떤 도움이라도 대단히 감사합니다.

감사합니다,

토르

답변

2

A-하! 창에서 탭을 만드는 방법은 다음과 같습니다.

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