2

我打算用多個視圖和窗口創建一個OS X應用程序。OS X中的窗口之間的轉換

它有幾個屏幕 - 飛濺,登錄/註冊和主屏幕(等等)。

我試着用NSWindowControllers。但是,使用起來非常複雜,我很困惑。

視圖/窗口轉換中的最佳體驗是什麼?

+0

你的Windows全部在同一個xib文件中嗎? – rdelmar

+0

http://stackoverflow.com/questions/2115257/how-to-use-nswindowcontroller 和 http://stackoverflow.com/questions/3683349/nswindowcontroller-clarification-of-understanding會幫助你。 – parilogic

回答

3

我使用的主要模式是如下:

  • 創建New FileUser InterfaceWindow並將其保存爲nameYouLike
  • 創建NSWindowController子類的New FileCocoaObjective-C class和保存是nameYouLikeDelegate
  • 訪問名稱You like NSWindow並更換它爲File's OwnerClassnameYouLikeDelegate
  • 連接window和其他對象,你需要的廈門國際銀行與IBOutletnameYouLikeDelegate.h
  • 在一些初始化/ show方法做到這一點:

    - (void)showWindow { 
        if (!self.window) { 
         [NSBundle loadNibNamed:@"nameYouLike" owner:self]; 
        } 
    
        [self.window makeKeyAndOrderFront:self]; 
    } 
    
  • 以某種方式保存

    參考指標(如在AppDelegate或另一個窗口)的NSWindowController

    nameYouLikeDelegate *fNameYouLikeDelegate; 
    
  • 現在,當你需要創建你的窗口,你使用:

    fNameYouLikeDelegate = [[nameYouLikeDelegate alloc] init]; 
    
  • ,並顯示出它:

    [fNameYouLikeDelegate showWindow]; 
    
+0

不適用於我。但是我先創建了類,然後選擇了「也創建xib」 –

1

您想如何轉換? 在你的案例中,在窗口之間轉換可能是沒有必要的。 更好地製作一個NSViewController並在窗口的子視圖之間切換。 你應該看看可可的基本知識。

然後,您可以使用視圖的animator屬性。

[[self.view animator] setAlphaValue:0.0];