Вы можете реализовать -validateMenuItem:
в классе респондента, который обрабатывает действие пункта меню. Он должен возвращать BOOL (который указывает, включен ли элемент), но вы также получаете ссылку на NSMenuItem
в качестве параметра, который можно использовать для изменения заголовка.
Чтобы решить, с каким пунктом меню вы имеете дело, вы должны проверить его action
, например,
- (BOOL)validateMenuItem:(NSMenuItem *)item {
if ([item action] == @selector(export:)) {
if (hasSelection) {
[item setTitle:NSLocalizedString(@"Export Selected Things",nil)];
} else {
[item setTitle:NSLocalizedString(@"Export All Things",nil)];
}
}
return YES;
}