2011-07-10 63 views
1

我有一個狀態項目,並希望用戶點擊它時發生幾個動作。一些在線幫助和文檔已經讓我走到了盡頭。點擊狀態項目應該開始操作,但不會

頭文件有這樣的:

- (IBAction)updateStatusItem:(id)sender; 

類.m文件有:

[statusItem setAction:@selector(updateStatusItem:)]; 

我在兩者的applicationDidFinishLaunching和awakeFromNib嘗試。

而且也是在M檔:

-(IBAction)updateStatusItem:(id)sender{ 
NSLog(@"updateStatusItem worked");} 

從我所看到的這是有道理的,但每當我點擊的狀態項,菜單剛剛落下正常,該消息未得到記錄。我認爲也許我必須以某種方式將它與IB鏈接起來,但據我所知,在IB中沒有狀態項的表示,它都是以編程方式完成的。我知道這可以做,但它不適合我。你們中的任何一個人能看到什麼不對?

感謝您的幫助。

回答

1

對於要發送的操作消息,您需要有某處發送它。這意味着你還必須設置對象,這是您要撥打的動作選擇的對象target

[statusItem setAction:@selector(updateStatusItem:)]; 
[statusItem setTarget:yourController]; 

當動作被觸發,這將調用您的控制器對象的‑updateStatusItem:方法。

但是,您不能擁有使用目標/操作並且也有菜單的狀態項目。如果您的狀態項目有一個菜單,那麼它總是會通過點擊狀態項目來觸發,並且狀態項目的目標和操作將被忽略。

+0

是的,工作。太糟糕了,我不能同時擁有菜單和操作。 – Elbimio

相關問題