2012-12-18 11 views
5

मैं खुशी सेक्या किसी निश्चित पृष्ठ पर preview.app के साथ पीडीएफ खोलना संभव है?

[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 पास करके? क्विकलुक यह कर सकता है और मैं इस व्यवहार की नकल करना चाहता हूं।

किसी भी मदद के लिए धन्यवाद!

+0

पूर्वावलोकन में कोई ऐप्पलस्क्रिप्ट शब्दकोश नहीं है, इसलिए शायद यह पता लगाने में आसान नहीं होगा कि क्विकलुक यह कैसे करता है। – JWWalker

उत्तर

3

आप इसे एनएसएप्लस्क्रिप्ट के माध्यम से कर सकते हैं।

यहाँ एक NSWorkspace श्रेणी विधि फ़ाइल को खोलता है और निर्दिष्ट पृष्ठ पर कूदता है कि है:

- (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 sharedWorkspace] openPreviewFile:@"/YOUR_PDF.pdf" 
             onPage:3]; 

अस्वीकरण: यह टूट जाता है उपयोगकर्ता के लिए एक कस्टम कुंजीपटल शॉर्टकट को परिभाषित करता है, तो "पृष्ठ पर जाएं ..." मेनू आइटम!

संबंधित मुद्दे

 संबंधित मुद्दे