2010-12-24 64 views
15

我以編程方式創建NSMenuItem並將其禁用。如果我重寫validateMenuItem:方法併爲所有項返回YES,菜單項正常工作。已禁用nsmenuitem

爲什麼當我將菜單告訴autoEnableItems並且不覆蓋validateMenuItem方法時,它不會被啓用?

NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:label action:@selector(methodToLogSomething:) keyEquivalent:@""]; 
menuItem.representedObject = representedObject; 
[menuItem setTarget:self]; 
[menu insertItem:menuItem atIndex:[[menu itemArray] count]-1]; 
[menuItem release]; 
    [menu setAutoenablesItems:YES]; 

回答

27

如果菜單項目標和操作未正確設置,菜單項會停用。就我而言,我在選擇器的末尾忘了:

+0

感謝您發佈您的答案。這幫助了我! – livingtech 2011-11-18 19:22:06

+0

這只是爲我節省了很多時間......謝謝。 – 2014-10-18 22:15:02

+1

我忘了通過'setTarget'設置目標。沒有正確設置。謝謝! – 2017-02-17 11:34:12