代码之家  ›  专栏  ›  技术社区  ›  gargantuan

如何使用Cocoa和Interface Builder创建单窗口应用程序?

  •  1
  • gargantuan  · 技术社区  · 14 年前

    我刚开始使用Interface Builder,我想创建一个标签式的单窗口应用程序,设计类似于 Coda Versions .

    然而,我不知道应该采取什么样的方法。我想我可能需要创建自己的标签栏和某种控制器来加载/卸载不同的“视图”,但是各个“视图”应该是什么?

    是创建多个窗口并以某种方式将其加载到父窗口中,还是应该切换一组自定义视图的可见性,还是有完全不同的方法?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Nikolai Ruhe    14 年前

    在Cocoa中在一组视图之间切换的标准方法是使用 NSTabView . 你可以 setTabViewType: NSNoTabsNoBorder 要完全隐藏选项卡并仅使用选项卡视图切换视图。如果将选项卡视图放入窗口的内容视图,并调整自动调整大小,则选项卡视图将切换整个窗口内容。

    可以使用自定义工具栏项激活各个选项卡。

        2
  •  2
  •   radex    14 年前

    我就是这么做的:

    对于每个视图,我分别创建了nibs和viewcontroller(somethingview controller:nsviewcontroller)。在NIBS中,我将“文件的所有者”设置为SomeThingView控制器。

    视图控制器自动加载NIB:

    - (id) init
    {
       if(self = [super initWithNibName:@"HistoryTab" bundle:nil])
       {
          [self loadView];
       }
    
       return self;
    }
    

    我只是创建了viewcontroller的实例。

    要创建类似coda的选项卡,您需要编写一些代码或使用bwtoolkit

    对不起我的英语;)

    编辑:

    我会忘记-在主窗口中,我有主视图视图,在加载了view controller之后,我只在应用程序控制器中执行以下操作:

    [self.mainView addSubview:[viewController view]];

    当切换选项卡I时:

    [[viewController view] removeFromSuperlayer];