Macos addSubview:定位:相对:有时不工作
我使用Macos addSubview:定位:相对:有时不工作,macos,nsview,Macos,Nsview,我使用[viewA addSubview:viewB positioned:nswindowoverrelativeto:nil]将viewB添加到viewA的其他子视图之上,并且视图层次结构是正确的。但在UI中,viewB不在顶部,它仍然被viewC隐藏 我发现如果viewC是一个wantsLayer或由OpenGL渲染的视图,那么这个问题就会发生。但如果viewC是普通视图,viewB将位于顶部,而不是被viewC隐藏。它似乎与视图渲染机制有关 苹果公司的doc ofaddSubview:p
[viewA addSubview:viewB positioned:nswindowoverrelativeto:nil]
将viewB添加到viewA的其他子视图之上,并且视图层次结构是正确的。但在UI中,viewB不在顶部,它仍然被viewC隐藏
我发现如果viewC是一个wantsLayer
或由OpenGL渲染的视图,那么这个问题就会发生。但如果viewC是普通视图,viewB将位于顶部,而不是被viewC隐藏。它似乎与视图渲染机制有关
苹果公司的doc of
addSubview:positioned:relativeTo:
对此没有任何说明,所以有人有想法吗?您是否尝试过将relativeTo设置为视图而不是nil?[NSView addSubview:positioned:relativeTo:]的文档说明,如果relativeTo为nil,则添加的视图将添加到其所有新同级的上方或下方。是的,已经尝试过,但没有效果。我不认为这是零的问题。谢谢。既然您没有使用relativeTo参数,为什么不直接使用[NSView addSubview:]?这可能会解决您的问题。我需要指定层次结构中的视图位置,而不仅仅是放置在视图中。这可能是一个已在macOS 10中解决的错误。13您是否尝试将relativeTo设置为视图而不是nil?[NSView addSubview:positioned:relativeTo:]的文档说明,如果relativeTo为nil,则添加的视图将添加到其所有新同级的上方或下方。是的,已经尝试过,但没有效果。我不认为这是零的问题。谢谢。既然您没有使用relativeTo参数,为什么不直接使用[NSView addSubview:]?这可能会解决您的问题。我需要指定层次结构中的视图位置,而不仅仅是放置在视图中。这可能是一个在macOS 10.13中已解决的错误