你如何使用MainMenu.xib中的视图?

时间:2015-06-15 20:46:55

标签: objective-c xcode macos cocoa

我是从iOS开发过来的,我无法弄清楚这个基本的东西:如果我在Interface Builder中打开MainMenu.xib并将一个按钮拖到主窗口的视图中,我应该将该按钮的操作连接到 - App Delegate?

如果我想添加一个视图控制器,我该如何"分配"它是MainMenu.xib中主窗口的视图吗?

模式是什么 - 使用NSViewController,使用NSWindowController,或者只是将所有内容都推送到App Delegate中?

1 个答案:

答案 0 :(得分:2)

因此默认情况下,您的主应用程序窗口是应用程序委托中的插座。您应该将MainMenu.xib的所有者保留为应用代理。

如果要创建自己的自定义窗口控制器,常见的替代方法是在类型为CustomWindowController的AppDelegate中创建属性,然后在-applicationDidFinishLaunching中实例化自定义窗口并显示它:

   if(!windowController){
       windowController = [[MyWindowController alloc] initWithWindowNibName:@"MyWindow"];
    }

    [windowController showWindow:self]; 

当然,这意味着您可以切断与他们为您提供的默认窗口的连接。

如果您添加任何按钮,您将需要将它们连接到它们所在的超级视图的所有者。如果您在MainMenu.xib默认窗口中工作,还是自定义窗口控制器,那么它是否是应用程序委托如果您创建了自己的窗口,或者如果要创建自己的视图,则创建自定义视图控制器。

如果要添加视图控制器,首先必须像使用CocoaTouch类一样创建新的Cocoa类。然后在Interface Builder中,转到右下角的Object Library并搜索“Object”。将其拖到文档大纲中,然后从那里设置从视图到新视图控制器的连接。

模式实际上取决于你正在做什么,但在一天结束时,你不需要创建自己的NSWindowController,你可以使用它们为你提供的默认window。 AppDelegate。如果要创建需要某些逻辑的自定义视图,则必须创建自己的自定义NSViewControllers并将它们放入xib中