【问题标题】:Disabled wxWidgets menu on MacOS在 MacOS 上禁用 wxWidgets 菜单
【发布时间】:2020-09-09 19:16:37
【问题描述】:

我使用 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);

【问题讨论】:

  • 你能构建和运行 wxWidgets 提供的minimal 示例吗?
  • 是的,我在 MacOS 上构建了 menu 示例。有两个可执行文件:menumenu.app。第一个与我的应用程序有相同的问题(菜单被禁用),但第二个工作正常。
  • 如果您计划在每个 OSX 上工作,您绝对应该构建 Mac OSX 应用程序包。此外,它是在 OSX 上分发 progrqms 的官方方式。

标签: macos cmake wxwidgets


【解决方案1】:

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 启动时出现控制台的问题。

【讨论】:

    猜你喜欢
    • 2013-05-05
    • 1970-01-01
    • 2017-05-15
    • 2019-11-24
    • 1970-01-01
    • 2018-10-19
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    相关资源
    最近更新 更多