С помощью волшебства отладчика XCode и некоторой отформатированной разборки я создал этот короткий заголовочный файл, который вы можете вставить в свой код (GitHub gist здесь ). Надеемся, что названия функций говорят сами за себя.
// TO USE THESE INTERFACES, you MUST link against ApplicationServices.framework.
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
// Boolean preferences
extern void CoreDockSetLaunchAnimationsEnabled(bool enable);
extern void CoreDockSetMagnificationEnabled(bool enable);
extern void CoreDockSetAutoHideEnabled(bool enable);
extern void CoreDockSetMinimizeInPlace(bool enable);
// Sets other preferences such as whether the indicators below the app icons are shown
// 'preferenceDict' is a CFDictionary containing a magic key value
// Will require further inspection of Dock.prefpane to find all the keys
// (I haven't noted them down)
extern void CoreDockSetPreferences(CFDictionaryRef preferenceDict);
#ifdef __cplusplus
} // extern "C"
#endif
Настройки, обновленные таким образом, отражаются мгновенно, потому что эти функции на самом деле внутренне сообщают сервису com.apple.dock.
Веселись!
ОБРАТИТЕ ВНИМАНИЕ: Это частные системные API. Любые приложения, представленные в Mac App Store, использующие эти API , будут отклонены . С другой стороны, если у вас нет намерений в App Store, использование этих интерфейсов не повредит. Похоже, они существовали с самого зарождения Mac OS X, и маловероятно, что они исчезнут в ближайшем будущем, если вообще когда-либо.