/ / Синхронно обаждане до NSWindow makeKeyAndOrderFront - какао, мако, nswindow, nsrunloop

Синхронно обаждане до NSWindow makeKeyAndOrderFront - какао, мако, nswindow, nsrunloop

Пиша малко приложение за какао за MacOS, а целта ми е да покажа прозорец и след това да прочета пикселите на екрана. Вече знам как да направя последната част, но имам проблеми с показването на прозореца, преди да продължим. От това, което видях, актуализациите на прозорци като тези, задействани от makeKeyAndOrderFront на NSWindow, се отлагат.

Аз все още съм сравнително нова за Какао, но всъщност искам да направя нещо подобно:

[myWindow makeKeyAndOrderFront:self];
// application blocks right here until the window is actually shown
...

Как да направя това блокиране?

Отговори:

0 за отговор № 1

Опитайте да се обадите - [NSWindow дисплей] на вашия прозорец, което ще го принуди да се покаже веднага.


1 за отговор № 2

Може би бихте могли да получите пикселите отпрозорец, а не на екрана? На Mac OS X (почти) всеки прозорец има собствен буфер (поддържащ магазин), независимо дали е видим или не. Това също така ще гарантира, че вашият тест работи, дори и да има системен диалог, който затъмнява зоната на екрана, където е поставен прозорецът.


0 за отговор № 3

Просто делегирайте обект като прозорец "s NSWindowDelegate и вземете екранната си снимка веднъж windowDidBecomeKey: се нарича в делегат.