2012-12-31 23 views
0

我想創建一個非常基本的SIMBL插件 - 只需在Safari中添加一個新的菜單。 這是我已經試過: 我將此添加到我的plist:在Cocoa中創建SIMBL插件

<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。 (所有連接,這不可能是錯誤) 我的.h

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

和我。主要文件

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

任何想法,爲什麼我的插件不工作?它建立沒有警告,我把它複製到〜/庫/ Application Support/SIMBL /插件/

這是我console.app輸出:http://cl.ly/LsH9

+0

有沒有機會讓你更具體?它在什麼意義上不起作用? – Monolo

+0

它不顯示任何東西。該菜單未顯示。 – dehlen

+0

你已經做了什麼來調試它(這是讓人們避免你已經嘗試過的建議)? – Monolo

回答

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:@""]; 
+2

那麼,問題是什麼,這個改變是如何解決它的? –