实现窗口的跳转:
1、创建一个新工程,取消勾选Use Storyboards如图:
2、创建一个新的NSWindowController,勾选Also create XIB…如图:
设置标题MainWindowController:
MainWindowController.m
self.window.title = @"主页面";
3、删除MainMenu.xib中的Window
4、AppDelegate中修改代码如下:
AppDelegate.h
#import <Cocoa/Cocoa.h>
#import "MainWindowController";
@interface AppDelegate : NSObject <NSApplicationDelegate>
/* 主窗口 */
@property(strong) MainWindowController *mainWindow;
@end
AppDelegate.m
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
_mainWindow = [[MainWindowController alloc]initWithWindowNibName:@"MainWindowController"];
//显示在屏幕中心
[[_mainWindow window] center];
//当前窗口显示
[_mainWindow.window orderFront:nil];
}
- (void)applicationWillTerminate:(NSNotification *)aNotification {
// Insert code here to tear down your application
}
@end
5、运行效果如下:
6、创建第二个窗口SecondWindowController
SecondWindowController
self.window.title = @"第二个页面";
7、MainWindowController点击显示下一个页面,调用主要代码:
self.secondWindow = [[ SecondWindowController alloc]initWithWindowNibName:@"SecondWindowController"];
//显示下一个接口
[self.secondWindow.window orderFront:nil];
//关闭当前窗口
[self.window orderOut:nil];
8、SecondWindowController点击返回,调用主要代码:
//通过代理设置主窗口
AppDelegate *delegateAPP = [[NSApplication sharedApplication]delegate];
[self.window close];
[delegateAPP.mainWindows.window center];
[delegateAPP.mainWindows.window makeKeyAndOrderFront:nil];
demo地址:https://github.com/MisterZhouZhou/Mac-OSX-WindowChange