OS X中窗口之间的转换

时间:2012-10-15 05:02:18

标签: objective-c macos transition nswindowcontroller nsviewcontroller

我将使用多个视图和窗口创建一个OS X应用程序。

它有几个屏幕 - 启动,登录/注册和主屏幕(等等)。

我尝试使用NSWindowControllers。然而,它使用起来非常复杂,我很困惑。

视图/窗口转换的最佳体验是什么?

2 个答案:

答案 0 :(得分:3)

我使用的主要模式如下:

  • 创建New File User Interface Window并将其另存为nameYouLike
  • 创建New File Cocoa Objective-C classNSWindowController子类,另存为nameYouLikeDelegate
  • 转到nameYouLike NSWindow并将其File's Owner Class更改为nameYouLikeDelegate
  • 将您需要xib的window和其他对象与IBOutlet连接到nameYouLikeDelegate.h
  • 在某些init / show方法中执行以下操作:

    - (void)showWindow {
        if (!self.window) {
            [NSBundle loadNibNamed:@"nameYouLike" owner:self];
        }
    
        [self.window makeKeyAndOrderFront:self];
    }
    
  • 以某种方式保存引用(例如,在另一个窗口的AppDelegateNSWindowController中):

    nameYouLikeDelegate *fNameYouLikeDelegate;
    
  • 现在,当您需要创建窗口时,请使用:

    fNameYouLikeDelegate = [[nameYouLikeDelegate alloc] init];
    
  • 并表明:

    [fNameYouLikeDelegate showWindow];
    

答案 1 :(得分:1)

您希望如何过渡? 在您的情况下,可能没有必要在窗口之间进行转换。 最好你制作一个NSViewController并在窗口的子视图之间转换。 你应该查看Cocoa的基础知识。

然后,您可以使用视图的animator属性。

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