如何在MacOSX上更改ObjC方法的默认/首选项?

时间:2010-07-12 20:19:27

标签: macos objective-c trackpad

MacOSX 10.6有一个方法setWantsRestingTouches,默认值为No,但我想以某种方式将默认值更改为YES。 (否则,我必须请求我使用的每个应用程序的开发人员使其成为可设置的首选项并相应地调用该方法。)

是否有一些传统方法可以从方法名称转换为全局首选项?

虽然许多应用程序公开了可以通过'defaults write ...'shell命令设置的用户首选项,但有没有类似的东西,但Apple提供的各种方法?

(对于不是ObjC编码器的道歉,所以我很可能不正确地表达了这些问题。)

具体来说,我有兴趣将触控板选项重新引入DISABLE“Ignore accidental trackpad input”,当引入unibody macbooks时,该选项已经推迟到10.5.x。开发人员文档指出,NSTouch类的setWantsRestingTouches方法和isResting属性是在特定于应用程序的级别上解析此行为的钩子。我的目标是比这更深层次。

谢谢!

1 个答案:

答案 0 :(得分:0)

  

是否有一些传统方法可以从方法名称转换为全局首选项?

没有

此外,遗憾的是,wantsRestingTouches甚至不是应用级偏好。这是视图级别的偏好。视图是您在窗口中看到的各种组件;许多对象本身就是视图,每个对象都有wantsRestingTouches设置。

因此,开发人员也不能轻易地在全球范围内将wantsRestingTouches转换为YES。 (从某种意义上说,你可以,但你真的不想这样做。)

你真的确定要这么做吗?对于严苛的苹果公司来说,如果母公司认为这是一个好方法,它有时是一种放弃和生活的好方法。 (在这种情况下,取消这个特定的选项。)随着每次OS X更新,一些功能被抛弃,许多人流下眼泪,许多人大声抱怨,但通常它并没有改变霸主的想法。随着每个版本的OS X锁定许多门,黑客攻击系统变得越来越困难。但在几年后,人们最终习惯了新系统。

那说,有办法做到这一点,但这涉及很多步骤。

  1. 了解如何执行方法调整,see here
  2. 编写修改init NSView方法的代码,以便它setWantsRestingTouches:YES
  3. 使用osax技巧see here注入它。它周围有一个名为SIMBL
  4. 的包装器

    我不会为你写一个。相反,如果你真的,真的想要这样做,那么你很有机会学习OS X和Objective-C的深层技巧。所以,要有耐心,愿意学习,玩得开心!