爲什麼函數displayChanged
在下面的代碼中被觸發?CGDisplayRegisterReconfigurationCallback:回調未調用
#import <Cocoa/Cocoa.h>
static void displayChanged(CGDirectDisplayID displayID, CGDisplayChangeSummaryFlags flags, void *userInfo) {
NSLog(@"%@, %@", displayID, flags);
}
int main(int argc, const char * argv[])
{
@autoreleasepool {
CGDisplayRegisterReconfigurationCallback(displayChanged, NULL);
CFRunLoopRun();
}
return 0;
}
我在物理上刪除(和插入)我的外部顯示器,但該功能從未運行。 爲什麼?
你在做什麼有沒有真正目的C.嘗試實例化一個目標C對象,並把你的「'CGDisplayRegisterReconfigurationCallback'」函數調用在。我建議這樣做的原因是因爲我認爲你的代碼直接進入到「CFRunLoopRun」中,並且任何回調(不在Objective C對象上下文中)都沒有機會被調用。 –
@MichaelDautermann我不認爲我理解,但你能提供一些代碼嗎? – Tyilo