Как настроить контекстное меню NSToolbar?

Мне нужно удалить некоторые элементы из контекстного меню, вызываемого правой кнопкой мыши, но панель инструментов не содержит общедоступного API для доступа к "toolbarView".

Можно ли настроить меню без использования частного API?

1 ответ

Решение

Вы можете получить доступ и изменить контекстное меню панели инструментов при создании панели инструментов, т.е. -[awakeFromNib]:

- (NSMenu *)toolbarMenuInWindow:(NSWindow *)window
{
    NSView *contentView = window.contentView;
    NSView *toolbarView = contentView.superview.subviews.lastObject;
    NSMenu *toolbarMenu = toolbarView.menu;
    return toolbarMenu;
}

Теперь вы можете напрямую редактировать пункты меню и скрывать или отключать их.

Другие вопросы по тегам