美文网首页iOS开发iOS Developer
MacOS工程替换MainMenu.xib

MacOS工程替换MainMenu.xib

作者: MacLeon | 来源:发表于2017-03-06 19:58 被阅读898次

    创建了一个新工程,勾选了storyboard。但是工程创建好后就后悔了,不想要storyboard,直接删除了,然后新建了一个MainMenu.xib,在这个xib下添加一个拖一个NSWindow,然后就想把这个window关联到AppDelegate.m里自己定义的一个window
    属性

     @proporty (weak) IBOutlet NSWindow *window;
    

    然后死活没法通过拖线关联上。查了一波资料,总算解决了,方法如下:

    Xcode默认创建的MainMenu.xib在Interface Builder中的Objects一栏中是有App Delegate这一项,如图:

    屏幕快照 2017-03-06 下午7.31.01.png

    同时AppDelegate中也已经默认连接好了MainMenu.xib中的NSWindow:

    @interface AppDelegate ()
    
    @property (weak) IBOutlet NSWindow *window;
    
    @end
    

    然而如果自己创建MainMenu.xib的话,这些都是没有的。在Interface Builder中的Objects一栏是这样:

    屏幕快照 2017-03-06 下午7.31.23.png

    所以我们要增加一个AppDelegate对象上去,并做好和window属性的关联。接下来是具体操作步骤:

    1、在Objects Library中找到Object:

    屏幕快照 2017-03-06 下午7.31.33.png

    2、手动将此Object拖到Interface Builder左侧的Objects一栏内。

    3、在右上的Identity Inspector中设置Class为AppDelegate,这样Object名字就变成了AppDelegate,也就是我们需要的AppDelegate对象:

    屏幕快照 2017-03-06 下午7.31.51.png

    4、拖线,把AppDelegate设置成File’s Owner的delegate

    屏幕快照 2017-03-06 下午7.31.58.png

    5、由于之前创建的是勾选StoryBoard的工程,所以target的General的Deployment Info中Main Interface记录的是StoryBoard.xib,此时需要将其改成MainMenu.xib。否则的话Run会崩溃。

    屏幕快照 2017-03-06 下午7.32.08.png

    (当然也可以设置Info.plist中的Main nib file base name属性)


    屏幕快照 2017-03-06 下午7.56.50.png

    相关文章

      网友评论

        本文标题:MacOS工程替换MainMenu.xib

        本文链接:https://www.haomeiwen.com/subject/uebugttx.html