«Переключить боковую панель» — это единственный элемент, который я добавил, как мне удалить другие элементы, которые мне на самом деле не нужны? Я застрял
У меня macOS 12.2 с wxWidgets v3.1.5.
вот код, который я использовал для добавления меню:
wxMenuBar *mainMenuBar = new wxMenuBar();
wxMenu *viewMenu = new wxMenu();
viewMenu->Append(wxID_ANY, "Toggle Sidebar");
mainMenuBar->Append(viewMenu, "&View");
this->SetMenuBar(mainMenuBar);
Конечно, я добавил код @Igor
вы можете попробовать int pos = viewMenu->FindItem( "ShowTab Bar" ); if ( pos != wxNOT_FOUND ) viewMenu->Delete( pos );
Проверьте документацию, чтобы узнать больше о переопределениях функции, которую я использовал.
Большое спасибо, к сожалению, это не сработало. pos
всегда wxNOT_FOUND
, я проверил количество элементов в нем с помощью метода GetMenuItems()
, и это было 1. Я понятия не имею, как wxWidgets обрабатывает меню в macOS
вам, вероятно, следует попробовать добавить этот фрагмент после вызова SetMenuBar()
. Если это не сработает, проверьте исходный код для обработки меню Window
в OSX. если и это не поможет - попробуйте отправить электронное письмо wx-users ML (вам придется подписаться на него), где вы сможете связаться с wx OSX core dev.
Вау, добавление меню после звонка SetMenuBar()
помогло. Я думаю, вы можете опубликовать это как ответ, чтобы я мог принять его. Благодарю вас!
Как сказано в комментариях, сначала вызов SetMenuBar()
на кадре, а затем добавление меню устранило проблему.
FWIW текущее поведение wx явно не идеально, и оно может измениться в будущем, вы можете следить за развитием событий Эта проблема.
Вы можете показать код того, как вы добавили это меню?