如何从应用程序加载xib并显示自定义框架的窗口

时间:2012-08-02 08:40:23

标签: objective-c macos frameworks loadnibnamed

我创建了一个框架并添加了一个名为" MyXibFile"的xib文件。我创建了一个单独的应用程序并将此框架添加到其中。我想加载这个.xib文件以显示它的窗口。

我正在使用以下不起作用的代码段

-(void)launchDownloaderWindow
{
    if (![NSBundle loadNibNamed:@"Download" owner:self]) 
    {
        NSLog(@"Nib loading failed");;
    } 

    [appWindow makeKeyAndOrderFront:nil];
}

我可以在控制台中看到消息"笔尖加载失败" 有任何建议如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我可以想到一种稍微不同的做法。在您创建的框架中创建一个类,可能是NSWindowController,并让它加载并返回窗口。例如,在导入框架之后,您可以初始化窗口控制器并创建对其创建的窗口的强引用。

<强> WindowController.m

@implementation WindowController

- (id)init {
    self = [super initWithWindowNibName:@"WindowController"];
    ...
    return self;
}

@end

<强> MyApp.m

- (void)showSomeWindow {
    WindowController *wc = [[WindowController alloc] init];
    self.appWindow = wc.window;

    [self.appWindow makeKeyAndOrderFront:self];
}