在 MacOS 上禁用 wxWidgets 菜单
Disabled wxWidgets menu on MacOS
我使用 CMake 构建 Mac 使用 wxWidgets 3.1.3 的应用程序。
我正在使用标准 wxMenu
创建菜单,它在 Windows 和 Linux 上运行良好,但在启动应用程序后在 MacOS 上运行良好菜单被禁用,直到将焦点更改为另一个应用程序并返回。
知道我做错了什么吗?
代码:
wxMenu* menuFile = new wxMenu;
wxMenu* menuHelp= new wxMenu;
// fill the menus ...
wxMenuBar* menuBar = new wxMenuBar;
menuBar->Append(menuFile, "&File");
menuBar->Append(menuHelp, "&Help");
SetMenuBar(menuBar);
MaxOS 包应该在 CMakeLists.txt 脚本中设置:
if(APPLE)
set_target_properties(app-target PROPERTIES
MACOSX_BUNDLE TRUE
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "" # to disable code sign
)
endif()
现在将创建 MacOS 应用程序 (.app) 而不仅仅是可执行文件。
这也解决了从 Finder 启动时出现控制台的问题。
我使用 CMake 构建 Mac 使用 wxWidgets 3.1.3 的应用程序。
我正在使用标准 wxMenu
创建菜单,它在 Windows 和 Linux 上运行良好,但在启动应用程序后在 MacOS 上运行良好菜单被禁用,直到将焦点更改为另一个应用程序并返回。
知道我做错了什么吗?
代码:
wxMenu* menuFile = new wxMenu;
wxMenu* menuHelp= new wxMenu;
// fill the menus ...
wxMenuBar* menuBar = new wxMenuBar;
menuBar->Append(menuFile, "&File");
menuBar->Append(menuHelp, "&Help");
SetMenuBar(menuBar);
MaxOS 包应该在 CMakeLists.txt 脚本中设置:
if(APPLE)
set_target_properties(app-target PROPERTIES
MACOSX_BUNDLE TRUE
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "" # to disable code sign
)
endif()
现在将创建 MacOS 应用程序 (.app) 而不仅仅是可执行文件。
这也解决了从 Finder 启动时出现控制台的问题。