0

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

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

虽然许多应用程序公开了可能通过“默认写入 ...”shell 命令设置的用户首选项,但除了 Apple 提供的各种方法之外,是否有类似的东西?

(很抱歉还不是 ObjC 编码器,所以我可能会不正确地表达这些问题。)

具体来说,我有兴趣重新引入触控板选项以禁用“忽略意外触控板输入”,该选项在 10.5.x 引入一体式 Macbook 时已消失。开发人员文档指出,NSTouch 类的 setWantsRestingTouches 方法和 isResting 属性是在特定应用级别解决此行为的挂钩。我的目标是更深层次。

谢谢!

4

1 回答 1

0

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

不。

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

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

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

也就是说,有一种方法可以做到这一点,但这涉及很多步骤。

  1. 了解如何执行方法调配,请参见此处
  2. 编写一个修改init方法的代码,NSView这样它就可以了setWantsRestingTouches:YES
  3. osax使用技巧注入它,请参见此处。它周围有一个名为SIMBL的包装器

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

于 2010-07-14T05:42:33.907 回答