Objective c osx在两个NSX视图之间切换

Objective c osx在两个NSX视图之间切换,objective-c,macos,cocoa,interface-builder,Objective C,Macos,Cocoa,Interface Builder,按下按钮后,我想在两个NSView控件之间切换。基本上,我有.xib文件,其中包含NSWindow控件。窗口包含两个子视图和几个按钮。我在对象列表中拖动了NSViewController,在xib中又拖动了一个NSView。 NSViewController引用了NSWindow中的视图和浮动在xib文件中的视图 问题是,按下按钮后,如何在NSWindow中的nsview1和nsview2之间切换?这样做对吗 为可交换视图所在位置的占位符定义NSView出口,以及保留对当前使用的视图控制器的引用

按下按钮后,我想在两个
NSView
控件之间切换。基本上,我有.xib文件,其中包含
NSWindow
控件。窗口包含两个子视图和几个按钮。我在对象列表中拖动了
NSViewController
,在xib中又拖动了一个
NSView
NSViewController
引用了
NSWindow
中的视图和浮动在xib文件中的视图

问题是,按下按钮后,如何在
NSWindow
中的nsview1和nsview2之间切换?这样做对吗


为可交换视图所在位置的占位符定义NSView出口,以及保留对当前使用的视图控制器的引用的属性

@property (assign) IBOutlet NSView* mainView;
@property (strong) NSViewController* currentViewController;
我使用一种通用方法来交换视图(使用autolayout使视图占据整个占位符视图)

现在您可以定义IBOutlets来实例化和交换视图控制器

-(IBAction)showView1:(id)sender
{
    View1Controller * controller = [[View1Controller alloc]init];
    [self setMainViewTo:controller];
}
-(IBAction)showView2:(id)sender
{
    View2Controller * controller = [[View2Controller alloc]init];
    [self setMainViewTo:controller];
}

一种方法是使用选项卡视图和隐藏选项卡,然后在选项卡之间切换。。。
-(IBAction)showView1:(id)sender
{
    View1Controller * controller = [[View1Controller alloc]init];
    [self setMainViewTo:controller];
}
-(IBAction)showView2:(id)sender
{
    View2Controller * controller = [[View2Controller alloc]init];
    [self setMainViewTo:controller];
}