【问题标题】:How to load xib and display window of custom framework from a application如何从应用程序加载 xib 并显示自定义框架的窗口
【发布时间】:2012-07-31 05:05:24
【问题描述】:
我创建了一个框架并添加了一个名为“MyXibFile”的 xib 文件。我创建了一个单独的应用程序并将这个框架添加到其中。我想加载这个.xib 文件以从中显示窗口。
我正在使用以下代码 sn-p 不工作
-(void)launchDownloaderWindow
{
if (![NSBundle loadNibNamed:@"Download" owner:self])
{
NSLog(@"Nib loading failed");;
}
[appWindow makeKeyAndOrderFront:nil];
}
我可以在控制台中看到消息“笔尖加载失败”
任何建议如何解决这个问题?
【问题讨论】:
标签:
objective-c
macos
frameworks
loadnibnamed
【解决方案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];
}