Мне нужно удалить некоторые элементы из контекстного меню, вызываемого правой кнопкой мыши, но панель инструментов не содержит общедоступного API для доступа к 'toolbarView'.
Можно ли настроить меню без использования приватного API?
Мне нужно удалить некоторые элементы из контекстного меню, вызываемого правой кнопкой мыши, но панель инструментов не содержит общедоступного API для доступа к 'toolbarView'.
Можно ли настроить меню без использования приватного API?
Вы можете получить доступ и изменить контекстное меню панели инструментов, когда панель инструментов создана, т.е. в -[awakeFromNib]
:
- (NSMenu *)toolbarMenuInWindow:(NSWindow *)window
{
NSView *contentView = window.contentView;
NSView *toolbarView = contentView.superview.subviews.lastObject;
NSMenu *toolbarMenu = toolbarView.menu;
return toolbarMenu;
}
Теперь вы можете напрямую редактировать пункты меню, а также скрывать или отключать их.