在启动mac app时确定Windows

时间:2012-05-23 18:51:59

标签: macos cocoa window

我有一个Login.xib和一个Main.xib,如果你登录后我将令牌存储到一个文件中。 如果这个带有令牌的文件存在,我想显示主窗口而不是登录,因为我已经知道它是哪个用户。

我在哪里以及如何决定应该显示哪个窗口?

1 个答案:

答案 0 :(得分:2)

我会在您的应用程序委托 applicationDidFinishLaunching:方法中检查此文件是否存在。

如果文件存在,则显示主窗口,否则显示登录窗口。

修改

在回复您的评论时,您需要查看NSWindowController课程的使用情况。基本上,您将为要控制的每个窗口都有一个 NSWindowController 对象。

您还需要更改应用程序中的一些内容,以更改加载主窗口的默认行为,这取决于您是否制作基于文档的应用程序。

如果您的应用程序不是基于文档的,则您的应用程序“知道”加载main.xib,因为这是在应用程序的info.plist文件中设置的。基本上,当您的应用程序启动时,它会在info.plist文件中查找哪个nib需要加载并加载它。通常,主笔尖包含菜单和窗口。只需删除窗口并在单独的笔尖中重新创建它,以便在默认情况下停止加载窗口。

如果您的应用程序是基于文档的,那么事情会有所不同。你将有一个NSDocument子类,它应该有一个名为 windowNibName 的方法,它返回要加载的nib文件的名称。删除此方法,改为覆盖 makeWindowControllers 以返回 NSWindowController 对象。 还有一点比这更多,但this应该让你开始,其余的超出你原来问题的范围。