【问题标题】:Edit system preferences from cocoa从可可编辑系统首选项
【发布时间】:2012-05-26 19:17:22
【问题描述】:

有没有办法使用 cocoa 以编程方式编辑系统首选项?是否需要一些框架?我需要这样做来更改全局代理设置。另外,我的应用程序是沙盒的。有没有关于如何做到这一点的示例代码?谢谢你的帮助。

【问题讨论】:

    标签: cocoa proxy sandbox system-preferences


    【解决方案1】:

    您正在寻找系统配置框架,但这并不容易。我认为沙盒应用程序不可能,因为它需要 root 权限。 (就像您必须以管理员身份验证才能修改系统偏好设置的网络窗格中的设置一样。)请参阅System Configuration Programming Guidelines。除其他外,他们说:

    需要创建或复制集合,或激活或 停用服务有更复杂的任务。他们必须使用 低级配置 API。此外,为了开发这些 您必须了解和使用系统配置的应用程序 解释和构建描述新集合的字典的模式 和服务。

    认识到修改网络首选项(在 换句话说,要更改持久存储),您的应用程序必须 获取root权限。这不是一项微不足道的任务。更多 信息,您可以阅读授权服务编程指南和 查看代码示例 AuthSample 和 MoreAuthSample 可在 http://developer.apple.com/samplecode/Security/idxAuthorization-date.html.

    目前,低级配置 API 非常基础,而且 有点难用。实际上,要执行常见的操作,例如 在创建新集时,您必须结合系统配置 API 具有 I/O 套件访问权限。在 Mac OS X 的未来版本中,系统 配置框架可以提供更高级别的 API 来执行此类 网络配置任务。

    它继续推荐MoreSCF sample code,但它已被归入遗留文档部分。

    【讨论】:

    • 目前,我这样做:system("networksetup -setsocksfirewallproxystate Wi-Fi on");这在非沙盒应用中运行良好,但在沙盒应用中则不行。
    猜你喜欢
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    相关资源
    最近更新 更多