Я не разработчик для OS X, поэтому не могу дать вам подробности. Но я знаю Windows и могу догадаться, как это можно реализовать - вы можете преобразовать некоторые методы.
В качестве иллюстрации предположим, что большинство программ, которые хотят следовать абстрактному ходу времени в Windows, используют GetTickCount . Это возвращает количество миллисекунд с момента запуска системы. (Существуют и другие API, которые может использовать приложение, но метод остается тем же.)
Чтобы изменить время, отображаемое для приложения, необходимо изменить значения, возвращаемые этой функцией времени. (например, умноженное на коэффициент), поэтому мы создаем функцию-обертку для применения преобразования:
DWORD GetTimeWarpTickCount()
{
static double factor = 2.0;
return (DWORD)(GetTickCount()*factor);
// simple implementation - you can be more sophisticated than this
// to preserve accuracy if necessary
}
После того, как вы закодировали функцию, используйте перехват , чтобы заменить оригинальную функцию Win32 на вашу собственную. Хукинг можно выполнять для каждого приложения, поэтому вы можете локализовать изменения времени для конкретных приложений.
Итак, короче говоря, если есть способ переопределить основные функции времени, предоставляемые приложениям OS X, то вы можете применить ту же процедуру.