1

Xcode 4.6.2 を使用した単純な cocoa coredata ステータスバー アプリケーションがあります。ここで私AppController.hは持っています

@interface AppController : NSObject
@property NSStatusItem *statusItem;
@property IBOutlet NSMenu *statusMenu;

私の中でAppController.m

@synthesize statusItem = statusItem;
@synthesize statusMenu = statusMenu;
-(void)awakeFromNib{
    statusItem = [[NSStatusBar systemStatusBar]statusItemWithLength:NSVariableStatusItemLength];
    statusItem.menu = statusMenu;
}

次に、私AppDelegate.mの中に関数があります:

#import "AppController.h"
-(IBAction)someAction:(id)sender{
    //code to do something
    AppController *x = [[AppController alloc]init];
    [x.statusMenu cancelTracking];
}

NSMenuItem のカスタム ビュー内でアクションを実行するボタンを介してメニューを閉じたい ([接続インスペクター] -> [アウトレット] -> [ctrl + ドラッグ] からボタンを表示)。NSButton に対して 2 つの異なる送信アクションを選択できないため、AppDelegate クラスにある IBAction someAction から AppController クラスで宣言されたメニューを閉じる必要があります。どうやってするの?投稿したコードが機能しません。前もって感謝します

4

2 に答える 2

0

多分これを試してください:

[[NSStatusBar systemStatusBar] removeStatusItem:[GSAppDelegate alloc].statusMenu];
于 2013-06-15T14:57:12.997 に答える