2012-12-18 4 views
5

私は喜んでPreview.appで特定のページでPDFを開くことはできますか?

[NSWorkspace.sharedWorkspace openFile: path]; 

を使用して自分のアプリケーション内からPreview.appでpathでPDFファイルを開くことができますしかし、私は、特定のページでそのファイルをPreview.appを起動したいと思います。これは可能ですか? NSWorkspaceさん

- (BOOL)openURLs:(NSArray *)urls withAppBundleIdentifier:(NSString *)bundleIdentifier options:(NSWorkspaceLaunchOptions)options additionalEventParamDescriptor:(NSAppleEventDescriptor *)descriptor launchIdentifiers:(NSArray **)identifiers 

方法で特定NSAppleEventDescriptorを渡すこと? QuickLookはこれを行うことができ、私はこの振る舞いを模倣したいと思います。

ありがとうございました!

+0

プレビューにはAppleScript辞書がないため、QuickLookの仕組みを理解するのは簡単ではないでしょう。 – JWWalker

答えて

3

NSAppleScriptでこれを行うことができます。これが何をするかだ。ここ

- (void)openPreviewFile:(NSString*)filePath onPage:(int)pageNumber { 
    [self openFile:filePath]; 

    NSString *sysEvents = @"System Events"; 

    NSString *source = [NSString stringWithFormat:@"tell application \"%@\" to activate\ntell application \"%@\" to keystroke \"g\" using {command down, option down}\ndelay %f\ntell application \"%@\" to keystroke \"%i\"\ntell application \"%@\" to keystroke return", 
         @"Preview", sysEvents, 0.5, sysEvents, pageNumber, sysEvents]; 

    NSAppleScript *script = [[[NSAppleScript alloc] initWithSource:source] autorelease]; 
    [script executeAndReturnError:nil]; 
} 

  • コールのOpenFile:

    は、ここでファイルを開き、指定したページにジャンプNSWorkspaceカテゴリメソッドですNSWorkspaceインスタンス上

  • オープンプレビューのページダイアログに移動
  • ダイアログがポップアップするまで待つ
  • Simu後半アクティブに取得する必要がありますページのキープレスは、その後、あなたがそのようにのようなメソッドを呼び出すことができます

リターンキーを押します。

[[NSWorkspace sharedWorkspace] openPreviewFile:@"/YOUR_PDF.pdf" 
             onPage:3]; 

免責事項:ユーザーは用のカスタムキーボードショートカットを定義する場合、これが壊れます「ページに移動...」メニュー項目!

関連する問題