问题所在
我想使用c++创建一个应用程序,使用新的macbook触摸栏。然而,我找不到任何真正好的资源。苹果也没有任何使用c++来编程触摸屏的文档。
我所做的
我在这和触摸栏上找到了c++文章,但是我找不到脚本GLFW/glfw3.h和GLFW/glfw3native.h的任何一个头文件。这两者似乎都是脚本工作的关键。
关于这个问题的更多信息
即使上面文章的脚本有效,也没有使用c++ (据我所知)为触摸栏编程的正式文档。我认为这是一件很重要的事情,因为很多应用程序(如果不是大多数应用程序)都是用c/c++编写的。
提前感谢您的帮助!
发布于 2017-02-15 06:36:45
因此,如果不使用GLFW,则链接到的文章基本上不需要GLFW/glfw3.h和GLFW/glfw3native.h文件。
您的C++应用程序使用的UI框架是什么?
除非它仍然在使用碳,在最低的级别,框架将创建NSWindows,实际上在UI中有窗口。您需要访问框架用来承载UI的NSWindow。如果它还在使用碳,我认为你可能无法做到这一点。
如果框架提供了某种机制来获取本机平台窗口(这将是一个NSWindow),那么您可以将作者对glfwGetCocoaWindow(window);的调用替换为来自您的框架的正确调用。
如果框架不提供对NSWindow的访问,那么您将需要使用文章底部注释掉的代码将触摸屏附加到应用程序中的窗口。
请注意,所有这些代码都是Obj代码;您需要在项目中至少有一个.m或.mm文件才能提供Obj胶水代码来访问触摸屏。基本上,该代码是Cocoa的一个C调用包装器。
还请注意,您需要展开按钮列表和操作列表,以便在触摸屏中放置所有不同的内容。您可以添加自己的包装API,以便工具栏的构造是从C++完成的,并将回调操作注册到C++应用程序中以处理事件。
然而,从根本上说,触摸屏在任何其他平台上都是不可用的,因此试图避免编写Obj来实现触摸屏并没有太大的好处,因为这些代码只会在macOS上运行。如果对此代码使用.mm文件实现Obj++,则仍然可以从触摸屏代码调用C++对象。
https://stackoverflow.com/questions/42240689
复制相似问题