swift - 如何使用 Swift 打开本地保存的 PDF 文件

标签 swift xcode macos file

我制作了一个 Swift 菜单栏应用程序 XCode 8.2.1。该脚本中的菜单栏选项之一成功运行了我创建的 AppleScript。我想在此菜单栏应用程序中添加另一个选项,为用户打开 PDF 说明/自述文件。如何在 Swift 中打开本地保存的 PDF 文件?

我已将我的代码包含在 XCode 的 AppDelegate.swift 文件中。

//
//  AppDelegate.swift
//  Layout Ad
//

import Cocoa


@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

@IBOutlet weak var statusMenu: NSMenu!

let statusItem = NSStatusBar.system().statusItem(withLength: NSVariableStatusItemLength)

@IBAction func quitClicked(sender: NSMenuItem) {
    NSApplication.shared().terminate(self)
}


func applicationDidFinishLaunching(_ aNotification: Notification) {
    statusItem.menu = statusMenu

    let icon = NSImage(named: "statusIcon")
    //icon?.isTemplate = true // best for dark mode
    statusItem.image = icon
    statusItem.menu = statusMenu
    constructMenu()
}


func applicationWillTerminate(_ aNotification: Notification) {
    // Insert code here to tear down your application
}


//Function to get the path to the applescript
func runApplescript(){
    let task = Process()
    task.launchPath = "/usr/bin/osascript"
    task.arguments = ["/Library/Scripts/1_Page Layout Scripts/Layout Ad.scpt"]

    task.launch()
}

//Function to open the script's instructions
func openPDF(){
   //Code to open PDF file will go here
    //"/Volumes/NAS/Advertising Department/16_SCRIPTS/*Instructions/2_Running Scripts/1_InDesign/Layout Ad Script Instructions.pdf"
}


//Function to make the menu work
func constructMenu() {
    let menu = NSMenu()


    menu.addItem(NSMenuItem(title: "Script Instructions", action: #selector(openPDF), keyEquivalent: ""))
    menu.addItem(NSMenuItem.separator())
    menu.addItem(NSMenuItem(title: "Layout Ad", action: #selector(runApplescript), keyEquivalent: ""))
    menu.addItem(NSMenuItem.separator())
    menu.addItem(NSMenuItem(title: "Quit", action: #selector(NSApplication.terminate(_:)), keyEquivalent: "q"))

    statusItem.menu = menu
}

}

最佳答案

NSWorkspace 可以做到这一点。

let url = URL(fileURLWithPath: "/Volumes/NAS/Advertising Department/16_SCRIPTS/*Instructions/2_Running Scripts/1_InDesign/Layout Ad Script Instructions.pdf")
NSWorkspace.shared.open(url)

关于swift - 如何使用 Swift 打开本地保存的 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51089836/

相关文章:

swift - 绘制 View : the drawing is not in the same position as my finger or my cursor

swift - Xcode:编译的应用程序文件无法像调试运行时一样工作

ios - TableView 单元格中的堆栈 View

ios - XCTest不会链接目标应用程序中的类

xcode - 恢复文件文档基础应用程序

macos - 如何在 Mac 上停止和启动 Jenkins

ios - NSManaged 与 !运算符(operator)

ios - 链接具有公共(public)静态库的静态库的正确过程是什么?

eclipse - 从 Eclipse 运行 Tomcat 时出现错误 404

android - AppleScript "do shell script"忽略 PATH 变量