gpt4 book ai didi

c++ - 用 C++ 编写 NSTouchBar

转载 作者:太空狗 更新时间:2023-10-29 21:35:29 28 4
gpt4 key购买 nike

问题

我想使用 C++ 创建一个使用新的 macbook pro 触摸条的应用程序。但是我找不到任何真正好的资源。苹果没有任何关于使用 C++ 编写触摸条的文档。

我做了什么

我找到了 this关于 c++ 和触摸栏的文章,但是我找不到脚本 GLFW/glfw3.hGLFW/glfw3native.h 的头文件。这些似乎都对脚本的工作至关重要。

关于这个问题的更多信息

即使上述文章的脚本有效,也没有官方文档用于使用 c++ 对触摸条进行编程(据我所知)。我认为这是一件很重要的事情,因为很多应用程序(如果不是大多数的话)都是用 c/c++ 编写的。

预先感谢您的帮助!

最佳答案

因此,如果您不使用 GLFW,那么您链接到的文章基本上不需要 GLFW/glfw3.hGLFW/glfw3native.h 文件。

您的 C++ 应用使用什么 UI 框架?

除非它仍在使用 Carbon,否则在最低级别,框架将创建 NSWindows 以在 UI 中实际拥有窗口。您需要访问您的框架用来承载它的 UI 的 NSWindow。如果它仍在使用 Carbon,我认为您可能无法完成此任务。

如果框架提供某种机制来获取 native 平台窗口(这将是一个 NSWindow),您可以将作者对 glfwGetCocoaWindow(window); 的调用替换为来自您的框架的正确调用。

如果框架不提供对 NSWindow 的访问,那么您将需要使用文章底部注释掉的代码将触摸栏附加到应用程序中的窗口。

请注意,所有代码都是 Obj-C 代码;您的项目中至少需要一个 .m.mm 文件,以提供 Obj-C 粘合代码来访问触摸栏。基本上,该代码是 Cocoa API 的 C 语言可调用包装器。

另请注意,您需要为要放入触摸栏的所有不同内容扩展按钮和操作列表。您可以添加自己的包装 API,以便从 C++ 完成工具栏的构造并注册回调到 C++ 应用程序中的操作以处理事件。

但从根本上说,触摸条在任何其他平台上都不可用,因此尝试避免编写 Obj-C 来实现触摸条并没有太大好处,因为该代码无论如何只能在 macOS 上运行。如果您使用 .mm 文件为此代码实现 Obj-C++,您仍然可以从触摸栏代码调用您的 C++ 对象。

关于c++ - 用 C++ 编写 NSTouchBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42240689/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com