我已经创建了一个带有NSOpenGLView的窗口,并在其中渲染了openGL内容。
我想添加一些按钮和文本字段到视图中:我可以使用接口构建器(或代码)添加NSTextField和NSButton,但它们没有显示出来。
据文档显示,NSOpenGLView无法拥有子视图,因此我创建了自己的CustomGLView,直接从NSView派生并实现了使用NSOpenGLContext的代码。但是子视图仍然没有出现:OpenGL上下文将其覆盖。
在Windows上不存在这个问题:Windows用于托管OpenGL的窗口必须设置WS_CLIPCHILDREN
和WS_CHIPSIBLINGS
样式,确保OpenGL表面不会遮挡任何对等体或子级(视图)。
如何在绘制OpenGL的NSView上方显示子视图?
[openGLView setWantsLayer:YES]
- Chris BeckeCAOpenGLLayer
,忘记这个过时、有缺陷和笨拙的类NSOpenGLView
。现在已经不值得使用了。 - Jay