我用 NSOpenGLView 创建了一个窗口,将 openGL 内容渲染到其中。
我想向视图添加一些按钮和文本字段:我可以使用界面生成器(或代码)添加 NSTextFields 和 NSButtons,但它们不会出现。
NSOpenGLView 被记录为无法拥有子视图,因此我通过直接从 NSView 派生并实现代码来创建和使用其中的 NSOpenGLContext 来制作自己的 CustomGLView。但子视图仍然没有出现:- OpenGL 上下文在它们上面进行绘制。
在 Windows 上,这个问题不存在:- 用于托管 OpenGL 的 Windows 必须具有WS_CLIPCHILDREN
and WS_CHIPSIBLINGS
样式设置确保任何同级或子子项(视图)不会被 OpenGL 表面遮挡。
如何让子视图显示在使用 OpenGL 绘制的 NSView 上?
你有2个选择:
仅为文本字段创建一个窗口。添加为托管 OpenGL 视图的子窗口。主要缺点是如果移动 Open GL 视图,您必须正确定位它。
-
像这样设置视图层次结构:
- Layer-backed view
- Layer-hosting其图层包含 OpenGL 图层的视图
- 文本域
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)