Как явствует из docs, что путь к «разбудить» дисплей в эти дни:
IOPMAssertionID assertionID2;
IOPMAssertionDeclareUserActivity(CFSTR("Your reasoning"),
kIOPMUserActiveLocal, &assertionID2);
IOPMAssertionCreateWithName(...)
путь от первоначального вопроса только «предотвращает показ собирается спать», если это уже (хотя он работает и может также использоваться для предотвращения его от , идущего, чтобы спать за duration времени).
Пути метод Документов «держать» дисплей на работах примерно таким же, как и IOPMAssertionCreateWithName
IOPMAssertionID m_disableDisplaySleepAssertion;
IOReturn success2 = IOPMAssertionCreateWithDescription(
kIOPMAssertionTypePreventUserIdleDisplaySleep, reasonForActivity, NULL, NULL, NULL, 0, NULL, &m_disableDisplaySleepAssertion);
if (success2 == kIOReturnSuccess) {
// screen will stay on, do you work
success = IOPMAssertionRelease(m_disableDisplaySleepAssertion);
}
Если вы хотите, чтобы «включить его и сохранить его навсегда», то IOPMAssertionDeclareUserActivity
следует выше , или просто звоните IOPMAssertionDeclareUserActivity
снова и снова.
Вы также можете взывать к утилите caffeinate
командной строки, я полагаю :)
Заметим также, что [какао-DEV вкладчик] (http://www.cocoabuilder.com/archive/cocoa/191807-sleep -display.html # 206374) говорит, что это вызовет панику ядра на машинах PPC. –