0

NSWindowPDFViewxib 文件创建了一个,我创建了一个名为 MainController 的控制器,在那里,我创建了一个 ibaction -(IBAction) openFileAction:(id) sender,它使用该方法

-(void) openFile:(NSString *) path{
  NSLog(@"Opening File %@",path);
  PDFDocument *pdfDoc = [[PDFDocument alloc] initWithURL:[NSURL fileURLWithPath:path]];
  [pdfView setDocument: pdfDoc]; 
}

我将打开的菜单openFileAction项链接到,点击后 PDF 文件在 PDFView 中正确显示。

我正在做一个逻辑来接收命令行参数

-(MainController *) init{
  [super init];
  NSArray *myArgs = [[NSProcessInfo processInfo] arguments];
  NSLog(@"pdf view %@", pdfView);
  if ([myArgs count] >= 2 ){ 
    [self openFile:[myArgs objectAtIndex:1]];
  }

  return self;
}

如您所见,我在默认构造函数中进行了覆盖,在这种情况下,pdfView 为空,然后在应用程序/主窗口加载后文件未打开。

我的问题是,如何在应用程序加载后在 PDFView 中打开 pdf?UI加载后有什么钩子可以使用吗?

4

2 回答 2

0

如果您想在您的 PDFView 所在的窗口打开时执行此操作,请使用 MainController 中的windowDidLoad函数,而不是尝试在 init 中加载它。

于 2010-11-13T07:15:19.870 回答
0

感谢 slycrel 但 windowDidLoad 是 NSWindowController 的回调。我自己找到了解决方案,秘诀是

- (void) awakeFromNib{
 //Do something after initialize UI components 
}

一切顺利。

于 2010-11-13T11:08:23.820 回答