Я собираю приложение для Mac OS X и пытаюсь зарегистрироваться, чтобы получать уведомления о реконфигурации дисплея, но сейчас я очень растерялся.Я читал документацию Apple и некоторые сообщения на форумах и т. Д., Но все, кажется, предполагает лучшее знание вещей, чем я, очевидно, обладаю.Я понимаю, что я должен запросить обратный вызов внутри цикла выполнения для его правильной работы.Я не знаю, как настроить базовый цикл запуска для этого, хотя.Я также чувствую, что пример, который Apple имеет в своей документации, пропускает то, что, как они ожидают, я уже знаю.Чтобы показать свое невежество, я чувствую, что все должно выглядеть следующим образом.
NSRunLoop *rLoop = [NSRunLoop currentRunLoop];
codeToStartRunLoop
void MyDisplayReconfigurationCallBack (
CGDirectDisplayID display,
CGDisplayChangeSummaryFlags flags,
void *userInfo);
{
if (flags & kCGDisplayAddFlag) {
NSLog (@"Display Added");
}
else if (kCGDisplayRemoveFlag) {
NSLog (@"Display Removed");
}
}
CGDisplayRegisterReconfigurationCallback(MyDisplayReconfigurationCallBack, NULL);
Фактический код, который я получил, был взят из примера Apple, но он говорит мне, что flags
- это необъявленный идентификатор на данном этапе, ине скомпилируется.Не то чтобы это работало правильно, так как у меня его нет в цикле выполнения.Я надеялся найти где-нибудь учебник, который объясняет регистрацию для системного обратного вызова в цикле выполнения, но не увенчался успехом.Если бы кто-нибудь мог указать мне правильное направление, я бы это очень оценил.
(Я уверен, что по моему вопросу вы сможете сказать, что я очень зеленый. Я научил себяC из книги как моего первого языка программирования. Я пропускал C, так что время от времени я сталкивался с чем-то, что я не могу понять.)