簡體   English   中英

Swift,macOS:在該位置打開終端 window

[英]Swift, macOS: Open terminal window at the location

我正在嘗試將終端 window 和 go 午餐到其中的一些本地路徑:

我的代碼:

public class func openShell(at url: URL?) {
    guard let url = url else { return }
    
    let shellProcess = Process();

    shellProcess.launchPath = url.path;

    //shellProcess.arguments = [
    //  "osascript -e 'tell application \"terminal\" to do script \"cd \(url)\"'"
    //];

    shellProcess.launch();
}

但結果有一些 output 進入 XCode 內部的調試控制台,但沒有 shell Z05B1C74CBD902FBF2Z4 被打開。

注釋代碼 - 我嘗試過的另一種方法

所以基本上你有兩個選擇:

  1. 您需要關閉沙箱才能使用此方法;
  2. 您需要創建 XPC 服務,然后從那里調用這些東西,它應該可以工作。

第二個顯然更好,在實際應用中您應該使用這種方法。 也可以了解有關 XPC 服務的更多信息,您可以查看我的存儲庫,我會在其中執行相同的操作來解析進程信息或查看本指南

2021,Swift 5.0

答案很簡單:

@available(OSX 10.15, *)
public class func openTerminal(at url: URL?){
    guard let url = url,
          let appUrl = NSWorkspace.shared.urlForApplication(withBundleIdentifier: "com.apple.Terminal")
    else { return }
    
    NSWorkspace.shared.openFile("\(url.path)", withApplication: appUrl.path)
}

在每個 func 調用上,將打開具有選定位置的終端的新實例。

並且無需為此創建 XPC 服務或關閉沙箱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM