0

非常に基本的な SIMBL プラグインを作成したい - Safari に新しいメニューを追加するだけです。これは私が試したことです:私はこれを私のplistに追加しました:

<key>NSPrincipalClass</key>
<string>MySamplePlugin</string>
<key>SIMBLTargetApplications</key>
<array>
    <dict>
        <key>BundleIdentifier</key>
        <string>com.apple.Safari</string>
        <key>MaxBundleVersion</key>
        <string>*</string>
        <key>MinBundleVersion</key>
        <string>*</string>
    </dict>
</array>

次に、MySamplePlugin クラスと Menu.xib を作成しました。(すべての接続が確立されているため、これは間違いではありません) my .h

-(IBAction)clickAbout:(id)sender;
@property (assign) IBOutlet NSMenu *topMenu;

そして私の.mainファイル

- (id) init {
self = [super init];
if (! self)
    return nil;

[NSBundle loadNibNamed: @"Menu.xib" owner: self];
return self;
}

- (IBAction) clickAbout: (id) sender {
 NSLog(@"do some stuff here");
}



+ (void) load
{
MySamplePlugin* plugin = [MySamplePlugin sharedInstance];
NSMenuItem* item;

item = [[NSMenuItem alloc] init];
[item setSubmenu: [plugin topMenu]];

[[plugin topMenu] setTitle: @"George"];

[[NSApp mainMenu] addItem: item];

NSLog(@"MySamplePlugin installed");
}

+ (MySamplePlugin*) sharedInstance
{
static MySamplePlugin* plugin = nil;

if (plugin == nil)
    plugin = [[MySamplePlugin alloc] init];

return plugin;
}

プラグインが機能しない理由はありますか? 警告なしでビルドされ、~/Library/Application Support/SIMBL/Plugins/ にコピーします。

そして、これは私の console.app の出力です: http://cl.ly/LsH9

4

1 に答える 1

0

この小さなコード変更でそれを手に入れたことは気にしないでください:

 NSMenu* mainMenu = [NSApp mainMenu];

NSMenu* debugMenu = [[NSMenu alloc] initWithTitle:@"Menu"];
NSMenuItem* newItem = [[NSMenuItem alloc] initWithTitle:@"Item" action:nil keyEquivalent:@""];

[newItem setSubmenu:debugMenu];
[mainMenu addItem:newItem];
[debugMenu addItemWithTitle:@"Run Unit Tests" action:nil keyEquivalent:@""];
于 2012-12-31T15:40:29.547 に答える