我已经制作了一个带有要呈现openGL内容的NSOpenGLView的窗口。
我想向视图中添加一些按钮和文本字段:我可以使用界面构建器(或代码)添加NSTextFields和NSButtons,但它们不会出现。
NSOpenGLView被记录为不能有子视图,因此我通过直接从NSView派生并实现代码来在其中创建和使用NSOpenGLContext,从而创建了自己的CustomGLView。但是子视图仍然没有出现:- OpenGL上下文在它们上面绘制。
在Windows上不存在这个问题:-用于托管OpenGL的Windows必须设置WS_CLIPCHILDREN和WS_CHIPSIBLINGS样式,以确保任何同级或子子(视图)不会被OpenGL表面遮挡。
如何使用OpenGL在绘图的NSView上显示子视图?
发布于 2010-02-09 20:54:12
您有两个选择:
- Layer-_backed_ view
- Layer-_hosting_ view whose layer contains an OpenGL layer
- Text field
发布于 2012-05-04 19:46:27
只需在NSOpenGLView的子视图上调用-setWantsLayer:YES即可。
发布于 2010-02-08 20:28:08
根据文档,NSOpenGLView不能有子视图。即使你继承了NSOpenGLView的子类,也不会有任何改变。
您可以做的是创建一个同时包含NSOpenGLView和NSTextField的NSView。然后将它们按正确的顺序重叠,使一幅画叠加在另一幅画上。
https://stackoverflow.com/questions/2221442
复制相似问题