特立独行的问题:在 NSView 上添加子视图时

Posted

技术标签:

【中文标题】特立独行的问题:在 NSView 上添加子视图时【英文标题】:Maverick Issue : While adding a subview on NSView 【发布时间】:2013-11-21 05:51:08 【问题描述】:

我有一个 NSView(outlet - detailsView) ,然后是一个 NSSplitView (outlet - detailsS​​piltView) ,拆分视图中有两个子视图,在这些子视图中有不同的滚动视图和表格视图。

NSView(detailsView)
|
NSSplitView(detailsSplitView)
|           |
NSView      NSView
|                 |
NSScrollView      NSScrollView
|                 |
NSTableView       NSTableVIew

在某种情况下,我在 detailsView 上添加了一个错误视图,而在其他情况下,表格视图将被填充: 加载errorView的代码如下:

[self.errorView setFrame:[self.detailsSplitView frame]];
[self.errorView setBackgroundColor:ERR_BG_COLOR];
[self.errorView setAlphaValue:0.85];
[self.detailsView addSubview:self.errorView];

它在 Mountain Lion 中完美运行,但在 Maverick 中,errorView 被加载到表格视图后面。 我什至尝试使用代码将表格视图发送回去

[tableView1 sendToBack];
[tableView2 sendToBack];
[self.detailsView addSubview:self.errorView positioned:NSWindowAbove relativeTo:self.detailsSplitView]; 

但是仍然在tableview的后面加载errorview。

【问题讨论】:

你试过我的答案了吗? 【参考方案1】:

我在 addSubView 方法下添加了以下代码,它起作用了:

--------
[self.detailsView addSubview:self.errorView];
[self.errorView setWantsLayer:YES];

【讨论】:

以上是关于特立独行的问题:在 NSView 上添加子视图时的主要内容,如果未能解决你的问题,请参考以下文章

将子视图添加到 NSView

添加为子视图的 NSView 不显示

将子视图添加到 NSView 以获得类似国际象棋的网格

Cocoa NSView 子视图阻止拖放

NSView 子视图的 Alpha 值

将 xib 视图初始化为另一个 NSView 的子视图