2012-12-31 9 views
0

아주 기본적인 SIMBL 플러그인을 만들고 싶습니다. Safari에서 새 메뉴를 추가하기 만하면됩니다. 이것은 내가 무엇을 시도했다입니다 : 내 PLIST이 추가 : 코코아에서 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; 

내 .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; 
} 

내 플러그인이 작동하지 않는 이유는 어떤 생각 (모든 연결이 실수를 할 수 없다 만들어진)? 그것은 경고없이 빌드와 나는 복사 그것에 ~/라이브러리/응용 프로그램 지원/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

그래서 문제는 무엇이며 어떻게이 변경으로 해결 되었습니까? –