Как изменить настройки по умолчанию / предпочтения для метода ObjC в MacOSX? - PullRequest
0 голосов
/ 13 июля 2010

В MacOSX 10.6 есть метод setWantsRestingTouches со значением по умолчанию Нет, но я бы хотел как-то изменить значение по умолчанию на ДА.(В противном случае мне пришлось бы запрашивать разработчиков каждого приложения, которое я использую, чтобы сделать это настраиваемым предпочтением и соответствующим образом вызывать этот метод.)

Есть ли какой-нибудь традиционный способ перевода из имени метода в глобальное предпочтение?

Хотя многие приложения предоставляют пользовательские настройки, которые могут быть установлены с помощью команды оболочки «defaults write ...», есть ли что-то похожее, но для различных методов, предоставляемых Apple?

(Извинения за неЯ пока еще работаю с ObjC, так что я, вероятно, неправильно формулирую вопросы.)

В частности, я заинтересован в том, чтобы заново включить опцию трекпада для ОТКЛЮЧИТЬ «Игнорировать случайный ввод с трекпада», который пропал в 10.5.x когда были представлены цельные макбуки.Документы для разработчиков указывают, что метод setWantsRestingTouches и свойство isResting класса NSTouch являются крючками для разрешения этого поведения на уровне приложения.Я стремлюсь к более глубокому уровню, чем это.

Спасибо!

1 Ответ

0 голосов
/ 14 июля 2010

Есть ли какой-нибудь традиционный способ перевода названия метода в глобальное предпочтение?

Нет.

Более того, wantsRestingTouches даже не приложениепредпочтение, к сожалению.Это предпочтение на уровне просмотра.Представления - это различные компоненты, которые вы видите внутри окна;многие объекты сами являются видами, и каждый из них имеет настройку wantsRestingTouches.

Так что разработчик не может легко превратить wantsRestingTouches в YES в глобальном масштабе.(В некотором смысле, вы можете, но на самом деле вы не хотите этого делать.)

Вы действительно уверены, что хотите это сделать?С драконовским яблоком иногда бывает полезно просто сдаться и жить с ним, если материнский корабль считает, что это хороший способ.(В этом случае, отказавшись от этой конкретной опции.) С каждым обновлением OS X некоторые функции были выброшены, и многие люди проливали слезы, и многие громко жаловались, но обычно это не изменяло мнение повелителя.И взломать систему становится все труднее, так как каждая версия OS X закрывает много дверей.Но через несколько лет люди со временем привыкнут к новой системе.

Тем не менее, , есть способ сделать это, но это включает в себя много шагов.

  1. Понять, как выполнять метод swizzling, см. Здесь
  2. Написать код, который изменяет init методы NSView, чтобы он setWantsRestingTouches:YES
  3. Введите его, используя трюк osax, см. Здесь .Вокруг него есть обертка, которая называется SIMBL

Я не пишу одну для вас.Скорее, если вы действительно, действительно хотите сделать это, это хорошая возможность для вас изучить глубокие приемы OS X и Objective-C.Так что наберитесь терпения, будьте готовы учиться и веселиться!

...