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

我正在使用以下无效的代码段

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

    [appWindow makeKeyAndOrderFront:nil];
}

我可以在控制台中看到消息“Nib加载失败”
有什么建议如何解决这个问题?

最佳答案

我可以想到一个稍微不同的方法。在您创建的框架中,创建一个类(可能是NSWindowController),并使其加载并为您返回窗口。例如,在导入框架之后,您可以初始化窗口 Controller 并创建对其创建的窗口的强引用。

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];
}

关于objective-c - 如何从应用程序加载Xib和显示自定义框架的窗口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11773866/

10-11 08:10