从主应用程序窗口打开“欢迎”窗口

时间:2016-03-30 06:03:12

标签: objective-c xcode

我正在为OSx开发可视化编辑器应用程序

目前,该应用程序打开了我的MainMenu.xib。 我想在用欢迎窗口打开应用程序时显示用户,列出以前打开的项目,以及创建新项目的按钮(实际链接到我的App Delegate menuNewProject方法)

打开此“欢迎”xib而不是MainMenu xib的最佳方法是什么?

让我当前的app delegate打开这样的欢迎xib?

Welcome *welcome = [[Welcome alloc] initWithWindowNibName:@"Welcome"];

然后隐藏我的MainMenu窗口?

或者我的应用程序的起点是欢迎xib而不是MainMenu,并从那里打开我的可视化编辑器?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

根据我的理解,你想打开"欢迎"屏幕而不是" MainMenu" ...

如果在info.plist文件中设置启动画面,将打开欢迎画面而不是MainMenu

在info.plist文件中设置此字段: -

Launch screen interface file base name = Welcome

希望它对你有用..谢谢

答案 1 :(得分:0)

好的,我想我明白了:

结束时
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification

我补充说:

[self.window orderOut:nil]; // hide application window
Welcome *welcome = [[Welcome alloc] initWithWindowNibName:@"Welcome"];
[welcome.window makeKeyAndOrderFront:self];
[[NSApplication sharedApplication] runModalForWindow:welcome.window]; // display splash screen

在我的Welcome.m文件中,我在启动窗口中添加了一个关闭按钮:

-(void)windowDidLoad
{
    [super windowDidLoad];

    NSButton* closeButton = [NSWindow standardWindowButton:NSWindowCloseButton forStyleMask:NSTitledWindowMask];
    [closeButton setFrameOrigin:NSMakePoint(0, 410)];
    NSView* contentView = self.window.contentView;
    [contentView addSubview:closeButton];

    [closeButton setTarget:[AppDelegate appDelegate]];
    [closeButton setAction:@selector(closeModal:)];
}

在AppDelegate.m中,我添加了一个closeModal方法,负责关闭我的欢迎屏幕并显示应用程序窗口:

-(void) closeModal:(id)sender
{
    [[NSApplication sharedApplication] stopModal];
    [self.window orderFront:nil];
}

似乎工作,也许我应该添加一些内容来从内存中丢弃我的欢迎屏幕。