macos - 在 MacOS 上禁用 wxWidgets 菜单
问题描述
我使用 CMake 使用 wxWidgets 3.1.3 构建 Mac 应用程序。
我正在使用标准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 bundle 应该在 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 启动时出现控制台的问题。
推荐阅读
- c++ - 使用 -funwind-tables 编译时究竟会发生什么?
- javascript - 如何在javascript中比较同一数组中的不同对象
- neural-network - 区分人工神经网络中的学习和记忆
- php - PHP SQL LEFT JOIN 多个值
- vue.js - 使用 ASP.net Core 2.0 应用程序在 IIS 上托管时出现 VueJs Url 重写错误
- git - GitHub 合作者私人档案
- php - laravel 获取当前登录用户的数据
- ios - 可选的通用参数 - 无法推断通用参数“T”
- c# - 如何在 MVC 项目之间共享 React jsx 文件?
- php - 在非重复值上合并数组