以编程方式打开PrefPane的部分

时间:2010-01-11 13:24:35

标签: objective-c cocoa macos

我需要在我的应用中打开网络预备。这适用于

[[NSWorkspace sharedWorkspace] openFile:@"/Path/To/PrefPane"];

但是我怎样才能直接打开“高级”下的“网络预设”中的“代理设置”?

您可以在“高级 - >代理”

下的Safari设置中看到此信息

由于

2 个答案:

答案 0 :(得分:7)

我发现最简单,最干净的方法是使用Applescript。

NSAppleScript *a = [[NSAppleScript alloc] initWithSource:@"tell application \"System Preferences\"\nactivate\nset current pane to pane \"com.apple.preference.universalaccess\"\nend tell"];
[a executeAndReturnError:nil];
[a release];

将com.apple.preference.universalaccess替换为窗格名称。 Here is a full list of preference pane names

答案 1 :(得分:2)

虽然它可以用于UI脚本,但它还需要访问辅助设备(系统偏好设置 - >通用访问)。这感觉不对,因为如果用户更喜欢禁用访问,那就行不通。如果您需要修改代理设置,可以直接使用SystemConfiguration.framework,进行必要的身份验证。