Отображение в режиме ожидания с использованием IOKit на Lion

#objective-c #macos #sleep #iokit

#objective-c #macos #сон #iokit

Вопрос:

У меня есть следующий код, который, как предполагается, переводит дисплей в спящий режим на Mac. Я пробовал его на Lion, но, похоже, он ничего не делает. Я протестировал код, создав приложение Mac с простым окном с кнопкой в окне и методом IBAction. При нажатии кнопки вызывается функция, приведенная ниже, однако ничего не происходит.

Любые предложения относительно того, почему это не работает?

 #include <CoreFoundation/CoreFoundation.h>
#include <IOKit/IOKitLib.h>

int display_sleep(void)
{
    io_registry_entry_t reg = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/IOResources/IODisplayWrangler");

    if (reg) 
    {
        IORegistryEntrySetCFProperty(reg, CFSTR("IORequestIdle"), kCFBooleanTrue);
        IOObjectRelease(reg);
    } 
    else 
    {
        return 1;
    }

    return 0;
}