MAC OSX學習(二)

小溪彼岸發表於2016-06-16

實現視窗的跳轉:
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

相關文章