我试图以编程方式在NSSplitView上添加一个NSView(以覆盖它)。每次尝试这样做都导致将其作为额外的子视图添加到NSSplitview中。
谁能帮忙吗?

代码:

InfoTrainView *myView = [[[InfoTrainView alloc] initWithFrame: aFrame] autorelease];
[NSBundle loadNibNamed:@"InfoTrainView" owner:myView];
[self.windowController.splitViewBase addSubview:myView];

最佳答案

我相信您需要将新视图作为子级添加到NSSplitView的超级视图(即父级)中。这样,它成为NSSplitView的同级对象并可以覆盖它。您当前的方法使新视图成为拆分视图的子级,然后将其设置为拆分四种方式。

NSView* parentView = [self.windowController.splitViewBase superview];
if (parentView)
    [parentView addSubview:myView];


上面的parentView应该使您获得“内容视图”,这是NSWindow内部的默认NSView,IB将NSSplitView放置在其中。如果是parentView == nil,则可以先尝试将NSView手动添加到窗口,然后将NSSplitView放入其中。

附带一提,您的问题回答了我自己的问题-如何以编程方式添加到NSSplitView内部拆分的视图中!谢谢 :)

10-07 23:18