如何在OSX上打开“共享菜单”首选项?

时间:2018-06-30 15:00:20

标签: macos cocoa

类似于Safari,尝试实现一个按钮,该按钮在单击时会打开“系统偏好设置”>“扩展”>“共享菜单”窗格。

我尝试过:

NSURL *URL = [NSURL URLWithString:@"x-apple.systempreferences:com.apple.preferences.extensions?Share_Menu"];
[[NSWorkspace sharedWorkspace] openURL:URL];

但是在新版本上似乎不起作用,有什么主意吗?

System Preferences Extensions Pane

1 个答案:

答案 0 :(得分:0)

您可以使用脚本桥来执行以下操作:

 SBSystemPreferencesApplication *systemPrefs =
[SBApplication applicationWithBundleIdentifier:@"com.apple.systempreferences"];

[systemPrefs activate];

SBElementArray *panes = [systemPrefs panes];
SBSystemPreferencesPane *notificationsPane = nil;

for (SBSystemPreferencesPane *pane in panes) {
    if ([[pane id] isEqualToString:@"com.apple.preferences.extensions"]) {
        notificationsPane = pane;
        break;
    }

}

[systemPrefs setCurrentPane:notificationsPane];

SBElementArray *anchors = [notificationsPane anchors];

for (SBSystemPreferencesAnchor *anchor in anchors) {
    if ([anchor.name isEqualToString:@"Extensions"]) {
        [anchor reveal];
    }
}

当然,您需要将ScriptingBridge框架添加到项目中,并添加Scripting Bridge头文件以获取系统首选项。您可以在Apple的开发人员文档中找到有关如何使用Scripting Bridge的更多详细信息。

希望这会有所帮助