MacOS工程替换MainMenu.xib

创建了一个新工程,勾选了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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • XIB 2016年04月25日⁄iOS开发经验⁄ 共 3625字 ⁄ 字号小中大⁄评论关闭 XIB Storybo...
    4d49353c3819阅读 2,731评论 0 5
  • Storyboard是最先在iOS 5引入的一项振奋人心的特性,大幅缩减构建App用户界面所需的时间。 要介绍St...
    余一波_Bobby阅读 62,081评论 11 76
  • iOS应用是非常注重用户体验的,在某些方面上应用的成功与否于UI界面是否漂亮,以及应用交互设计上有着非常重要的关系...
    相关函数阅读 28,874评论 6 53
  • 西方美食特点 选料严格、确保新鲜、奶制品繁多 西方美食对原料的选择非常严格,注重原料自身的品质特点,美食的制作非常...
    糊公子阅读 2,683评论 0 4
  • 人,善良很重要,人生,选择很重要。
    W琬in阅读 510评论 0 1