如何使用捆绑包标识符将系统首选项启动到特定的首选项窗格?

时间:2018-10-11 03:54:53

标签: swift macos cocoa bundle-identifier nsworkspace

我正在尝试直接从我的应用程序中打开系统日期和时间偏好设置。 我似乎可以使用以下方法打开系统偏好设置:

removePopup() {
  this.viewContainer.clear();
  ...
}

但是我不知道如何直接转到日期和时间窗格。

我尝试将捆绑包标识符更改为let settingsBundleIdentifier = "com.apple.systempreferences" NSWorkspace.shared.launchApplication(withBundleIdentifier: settingsBundleIdentifier, options: [], additionalEventParamDescriptor: nil, launchIdentifier: nil) com.apple.systempreferences:com.apple.datetimepref无济于事。

我在这里应该做什么?不能直接通过包标识符打开窗格吗?

我知道我可以使用com.apple.systempreferences:com.apple.preference.datetime的文件路径直接打开首选项窗格。但是我正在寻找使用包标识符打开它。

2 个答案:

答案 0 :(得分:0)

我发现以下代码将Security PrefPane打开到特定页面:

    let prefpaneUrl = URL(string: "x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility")!
    NSWorkspace.shared.open(prefpaneUrl)

但是奇怪的是,当我为“日期和时间”尝试相同的情况时

    let prefpaneUrl = URL(string: "x-apple.systempreferences:com.apple.preference.datetime"
    NSWorkspace.shared.open(prefpaneUrl)

它不起作用,也不能使用日期和时间PrefPane的捆绑包标识符:

    let prefpaneUrl = URL(string: "x-apple.systempreferences:system.preferences.datetime")!
    NSWorkspace.shared.open(prefpaneUrl)

更新:这里有一个工作的首选窗格标识符列表:https://macosxautomation.com/system-prefs-links.html似乎没有公开日期和时间。

答案 1 :(得分:0)

2020年| SWIFT 5.1:

systemPrefs:

NSWorkspace.shared.open(URL(fileURLWithPath: "x-apple.systempreferences:com.apple.preference"))

任何需要的偏好:

NSWorkspace.shared.open(URL(fileURLWithPath: "/System/Library/PreferencePanes/%PrefsNsme%.prefPane"))

%PrefsNsme%替换为位于“ / System / Library / PreferencePanes /”中的任何所需文件名