mac app开发之:利用NSWindowController实现窗口跳转

来源:互联网 发布:知商金融怎么样 编辑:程序博客网 时间:2024/05/18 17:04

今天这篇博客主要讲述的是窗口之间的跳转,当然了相对于ios 页面之间跳转,还是觉得ios更可爱许多!一般在ios开发中我们都习惯于继承于系统的UIViewController自定义一个BaseViewController(名字是大家随便取的,根据个人爱好,请不要在意!),更方便于自己把公有的属性写在里面,同样在mac开发中也是如此,只不过我们继承的是系统的NSWindow来实现自定义窗口!话不多说,请看代码。

新疆项目工程,如下


请不要勾选 Use Storyboards 选项,因为我们上一篇博客已经介绍过,在mac app开发过程中 Storyboard 并没有XIB 使用起来方便,所以今天我们以XIB为主来实现窗口之间的跳转!新建工程以后,我们首先创建一个继承于NSWindow的一个BaseWindow类,我们可以在里面填写一些自定义事件或方法,来实现我们的自定义窗口,然后我们在创建一个继承于NSWindowController的MainWindowController类,记得勾选上Also create XIB file for user interface 选项,如下图:

创建好以后在MainWindowController.xib中选中Window将它的继承类改成我们前面自定义的BaseWindow,然后拖拽一个NSButton到xib上面,修改其Title为“显示”并设置其约束,关联方法为: showNewsWindownder;

完成上面工作以后,在AppDelegate.h文件中引用MainWindowController.h文件创建其对象,如下:


然后在AppDelegate.m文件类中删除 @property (weak)IBOutletNSWindow *window;代码,并在MainMenu.xib中选中Window,删除该Window,然后在AppDelegate.m中

 - (void)applicationDidFinishLaunching:(NSNotification *)aNotifica函数中写如下代码:

然后我们在创建一个继承于NSWindowController的NewsWindowController类,步骤同上创建MainWindowController一样,不同的是将里面的NSButton的title改成“返回”,并关联其方法为:back,如下图:


我们在MainWindowController.m中引用NewsWindowController.h文件,然后创建其对象,如下:


其中showNewsWindow方法为跳转的方法。最后我们再在NewsWindowController.m文件中实现返回的方法,如下:


完成以后,运行我们的项目,如果不出意外的话,当前功能我们已经完成,当然显示窗口的方法并不是只有

- (void)orderFront:(nullable id)sender;这一种,还有别的一些方法如:

- (IBAction)showWindow:(nullable id)sender;

- (void)makeKeyAndOrderFront:(nullable id)sender;

等等,这些还需要大家自己去研究,根据自己需求和喜好来选则用哪些方法来实现,如果不想看我上面所写的内容嫌太罗嗦的话,可以直接点击下面链接,下载deom!

http://download.csdn.net/detail/u012890071/9454255  点击打开链接

今天的介绍就到此为止了,我们明天继续!

3 0
原创粉丝点击