2

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 で互いにどのように関連しているかわかりません。どんな助けでも大歓迎です。

ありがとう、

ソー

4

1 に答える 1

2

あはは!ウィンドウにタブを作成する方法は次のとおりです。

SafariTab *newTab = [[[safari classForScriptingClass:@"tab"] alloc] init];
[[[[safari windows] objectAtIndex:0] tabs] addObject:newTab];
[newTab release];
于 2010-05-26T13:32:45.657 に答える