0

xibファイルでを作成NSWindowPDFViewました。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がnullであるため、アプリケーション/メインウィンドウのロード後にファイルは開かれません。

私の質問は、アプリケーションのロード後にPDFViewでPDFを開くにはどうすればよいですか?UIのロード後に使用するフックはありますか?

4

2 に答える 2

0

slycrel に感謝しますが、windowDidLoad は NSWindowController のコールバックです。私は自分で解決策を見つけました、その秘密は

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

ではごきげんよう。

于 2010-11-13T11:08:23.820 に答える
0

PDFView が入っているウィンドウが開いたときにこれを行いたい場合は、init でロードするのではなく、MainController で windowDidLoad関数を使用します。

于 2010-11-13T07:15:19.870 に答える